diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-04-01 11:43:08 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2020-04-01 11:43:08 +0000 |
commit | 4c80b42683b88f933f87dbe79c0e94e336919938 (patch) | |
tree | df19ddfcca3c9e28551d014957000da52bd47995 /usr/src/uts/sfmmu | |
parent | 88606cbe3645730adccc57e29f4b829af51c05f4 (diff) | |
parent | 5338faaac2dc1b2a16cb1a986233578834926ce0 (diff) | |
download | illumos-joyent-4c80b42683b88f933f87dbe79c0e94e336919938.tar.gz |
[illumos-gate merge]
commit 5338faaac2dc1b2a16cb1a986233578834926ce0
12423 ipf: variable may be used uninitialized
commit 9b0bb795691f70ec1b1796f6d15266f82d7a3200
12349 clean up 32-bit assembly and lint
Conflicts:
usr/src/uts/sparc/v9/ml/lock_prim.s
usr/src/uts/intel/ia32/ml/lock_prim.s
usr/src/uts/intel/ia32/ml/copy.s
usr/src/uts/intel/Makefile.rules
usr/src/uts/i86pc/ml/syscall_asm_amd64.s
usr/src/uts/i86pc/ml/syscall_asm.s [deleted upstream]
Diffstat (limited to 'usr/src/uts/sfmmu')
-rw-r--r-- | usr/src/uts/sfmmu/ml/sfmmu_asm.s | 265 | ||||
-rw-r--r-- | usr/src/uts/sfmmu/ml/sfmmu_kdi.s | 18 |
2 files changed, 23 insertions, 260 deletions
diff --git a/usr/src/uts/sfmmu/ml/sfmmu_asm.s b/usr/src/uts/sfmmu/ml/sfmmu_asm.s index 57301f551b..023e09e30e 100644 --- a/usr/src/uts/sfmmu/ml/sfmmu_asm.s +++ b/usr/src/uts/sfmmu/ml/sfmmu_asm.s @@ -29,11 +29,7 @@ * routines. */ -#if defined(lint) -#include <sys/types.h> -#else /* lint */ #include "assym.h" -#endif /* lint */ #include <sys/asm_linkage.h> #include <sys/machtrap.h> @@ -67,8 +63,6 @@ #endif /* TRAPTRACE */ -#ifndef lint - #if (TTE_SUSPEND_SHIFT > 0) #define TTE_SUSPEND_INT_SHIFT(reg) \ sllx reg, TTE_SUSPEND_SHIFT, reg @@ -76,10 +70,6 @@ #define TTE_SUSPEND_INT_SHIFT(reg) #endif -#endif /* lint */ - -#ifndef lint - /* * Assumes TSBE_TAG is 0 * Assumes TSBE_INTHI is 0 @@ -470,61 +460,6 @@ label/**/2: nop /* for perf reasons */ ;\ or tmp, dest, dest /* contents of patched value */ -#endif /* lint */ - - -#if defined (lint) - -/* - * sfmmu related subroutines - */ -uint_t -sfmmu_disable_intrs() -{ return(0); } - -/* ARGSUSED */ -void -sfmmu_enable_intrs(uint_t pstate_save) -{} - -/* ARGSUSED */ -int -sfmmu_alloc_ctx(sfmmu_t *sfmmup, int allocflag, struct cpu *cp, int shflag) -{ return(0); } - -/* - * Use cas, if tte has changed underneath us then reread and try again. - * In the case of a retry, it will update sttep with the new original. - */ -/* ARGSUSED */ -int -sfmmu_modifytte(tte_t *sttep, tte_t *stmodttep, tte_t *dttep) -{ return(0); } - -/* - * Use cas, if tte has changed underneath us then return 1, else return 0 - */ -/* ARGSUSED */ -int -sfmmu_modifytte_try(tte_t *sttep, tte_t *stmodttep, tte_t *dttep) -{ return(0); } - -/* ARGSUSED */ -void -sfmmu_copytte(tte_t *sttep, tte_t *dttep) -{} - -/*ARGSUSED*/ -struct tsbe * -sfmmu_get_tsbe(uint64_t tsbeptr, caddr_t vaddr, int vpshift, int tsb_szc) -{ return(0); } - -/*ARGSUSED*/ -uint64_t -sfmmu_make_tsbtag(caddr_t va) -{ return(0); } - -#else /* lint */ .seg ".data" .global sfmmu_panic1 @@ -931,60 +866,11 @@ sfmmu_panic11: srln %o0, TTARGET_VA_SHIFT, %o0 SET_SIZE(sfmmu_make_tsbtag) -#endif /* lint */ - /* * Other sfmmu primitives */ -#if defined (lint) -void -sfmmu_patch_ktsb(void) -{ -} - -void -sfmmu_kpm_patch_tlbm(void) -{ -} - -void -sfmmu_kpm_patch_tsbm(void) -{ -} - -void -sfmmu_patch_shctx(void) -{ -} - -/* ARGSUSED */ -void -sfmmu_load_tsbe(struct tsbe *tsbep, uint64_t vaddr, tte_t *ttep, int phys) -{ -} - -/* ARGSUSED */ -void -sfmmu_unload_tsbe(struct tsbe *tsbep, uint64_t vaddr, int phys) -{ -} - -/* ARGSUSED */ -void -sfmmu_kpm_load_tsb(caddr_t addr, tte_t *ttep, int vpshift) -{ -} - -/* ARGSUSED */ -void -sfmmu_kpm_unload_tsb(caddr_t addr, int vpshift) -{ -} - -#else /* lint */ - #define I_SIZE 4 ENTRY_NP(sfmmu_fix_ktlb_traptable) @@ -1562,17 +1448,6 @@ do_patch: membar #StoreStore|#StoreLoad SET_SIZE(sfmmu_kpm_unload_tsb) -#endif /* lint */ - - -#if defined (lint) - -/*ARGSUSED*/ -pfn_t -sfmmu_ttetopfn(tte_t *tte, caddr_t vaddr) -{ return(0); } - -#else /* lint */ ENTRY_NP(sfmmu_ttetopfn) ldx [%o0], %g1 /* read tte */ @@ -1584,8 +1459,6 @@ sfmmu_ttetopfn(tte_t *tte, caddr_t vaddr) mov %g1, %o0 SET_SIZE(sfmmu_ttetopfn) -#endif /* !lint */ - /* * These macros are used to update global sfmmu hme hash statistics * in perf critical paths. It is only enabled in debug kernels or @@ -1681,36 +1554,6 @@ label: #define KPM_TLBMISS_STAT_INCR(tagacc, val, tsbma, tmp1, label) #endif /* KPM_TLBMISS_STATS_GATHER */ -#if defined (lint) -/* - * The following routines are jumped to from the mmu trap handlers to do - * the setting up to call systrap. They are separate routines instead of - * being part of the handlers because the handlers would exceed 32 - * instructions and since this is part of the slow path the jump - * cost is irrelevant. - */ -void -sfmmu_pagefault(void) -{ -} - -void -sfmmu_mmu_trap(void) -{ -} - -void -sfmmu_window_trap(void) -{ -} - -void -sfmmu_kpm_exception(void) -{ -} - -#else /* lint */ - #ifdef PTL1_PANIC_DEBUG .seg ".data" .global test_ptl1_panic @@ -1722,6 +1565,13 @@ test_ptl1_panic: .align 4 #endif /* PTL1_PANIC_DEBUG */ + /* + * The following routines are jumped to from the mmu trap handlers to do + * the setting up to call systrap. They are separate routines instead + * of being part of the handlers because the handlers would exceed 32 + * instructions and since this is part of the slow path the jump cost is + * irrelevant. + */ ENTRY_NP(sfmmu_pagefault) SET_GL_REG(1) @@ -1960,27 +1810,6 @@ test_ptl1_panic: mov -1, %g4 SET_SIZE(sfmmu_kpm_exception) -#endif /* lint */ - -#if defined (lint) - -void -sfmmu_tsb_miss(void) -{ -} - -void -sfmmu_kpm_dtsb_miss(void) -{ -} - -void -sfmmu_kpm_dtsb_miss_small(void) -{ -} - -#else /* lint */ - #if (IMAP_SEG != 0) #error - ism_map->ism_seg offset is not zero #endif @@ -3871,30 +3700,12 @@ tsb_protfault: ba,pt %icc, sfmmu_window_trap nop SET_SIZE(sfmmu_tsb_miss) -#endif /* lint */ - -#if defined (lint) -/* - * This routine will look for a user or kernel vaddr in the hash - * structure. It returns a valid pfn or PFN_INVALID. It doesn't - * grab any locks. It should only be used by other sfmmu routines. - */ -/* ARGSUSED */ -pfn_t -sfmmu_vatopfn(caddr_t vaddr, sfmmu_t *sfmmup, tte_t *ttep) -{ - return(0); -} - -/* ARGSUSED */ -pfn_t -sfmmu_kvaszc2pfn(caddr_t vaddr, int hashno) -{ - return(0); -} - -#else /* lint */ + /* + * This routine will look for a user or kernel vaddr in the hash + * structure. It returns a valid pfn or PFN_INVALID. It doesn't grab + * any locks. It should only be used by other sfmmu routines. + */ ENTRY_NP(sfmmu_vatopfn) /* * disable interrupts @@ -4113,12 +3924,8 @@ kvaszc2pfn_nohblk: SET_SIZE(sfmmu_kvaszc2pfn) -#endif /* lint */ - -#if !defined(lint) - /* * kpm lock used between trap level tsbmiss handler and kpm C level. */ @@ -4663,36 +4470,6 @@ locked_tsb_l2: #error - KPMTSBM_SHIFT does not correspond to size of kpmtsbm struct #endif -#endif /* lint */ - -#ifdef lint -/* - * Enable/disable tsbmiss handling at trap level for a kpm (large) page. - * Called from C-level, sets/clears "go" indication for trap level handler. - * khl_lock is a low level spin lock to protect the kp_tsbmtl field. - * Assumed that &kp->kp_refcntc is checked for zero or -1 at C-level. - * Assumes khl_mutex is held when called from C-level. - */ -/* ARGSUSED */ -void -sfmmu_kpm_tsbmtl(short *kp_refcntc, uint_t *khl_lock, int cmd) -{ -} - -/* - * kpm_smallpages: stores val to byte at address mapped within - * low level lock brackets. The old value is returned. - * Called from C-level. - */ -/* ARGSUSED */ -int -sfmmu_kpm_stsbmtl(uchar_t *mapped, uint_t *kshl_lock, int val) -{ - return (0); -} - -#else /* lint */ - .seg ".data" sfmmu_kpm_tsbmtl_panic: .ascii "sfmmu_kpm_tsbmtl: interrupts disabled" @@ -4703,6 +4480,13 @@ sfmmu_kpm_stsbmtl_panic: .align 4 .seg ".text" + /* + * Enable/disable tsbmiss handling at trap level for a kpm (large) page. + * Called from C-level, sets/clears "go" indication for trap level + * handler. khl_lock is a low level spin lock to protect the kp_tsbmtl + * field. Assumed that &kp->kp_refcntc is checked for zero or -1 at + * C-level. Assumes khl_mutex is held when called from C-level. + */ ENTRY_NP(sfmmu_kpm_tsbmtl) rdpr %pstate, %o3 /* @@ -4737,6 +4521,10 @@ sfmmu_kpm_stsbmtl_panic: wrpr %g0, %o3, %pstate /* enable interrupts */ SET_SIZE(sfmmu_kpm_tsbmtl) + /* + * kpm_smallpages: stores val to byte at address mapped within low level + * lock brackets. The old value is returned. Called from C-level. + */ ENTRY_NP(sfmmu_kpm_stsbmtl) rdpr %pstate, %o3 /* @@ -4769,9 +4557,6 @@ sfmmu_kpm_stsbmtl_panic: wrpr %g0, %o3, %pstate /* enable interrupts */ SET_SIZE(sfmmu_kpm_stsbmtl) -#endif /* lint */ - -#ifndef lint #ifdef sun4v /* * User/kernel data miss w// multiple TSBs @@ -4853,9 +4638,6 @@ sfmmu_dslow_patch_ktsb4m_szcode: SET_SIZE(sfmmu_slow_immu_miss) #endif /* sun4v */ -#endif /* lint */ - -#ifndef lint /* * Per-CPU tsbmiss areas to avoid cache misses in TSB miss handlers. @@ -4870,4 +4652,3 @@ tsbmiss_area: .global kpmtsbm_area kpmtsbm_area: .skip (KPMTSBM_SIZE * NCPU) -#endif /* lint */ diff --git a/usr/src/uts/sfmmu/ml/sfmmu_kdi.s b/usr/src/uts/sfmmu/ml/sfmmu_kdi.s index 4e60c2e38a..9ad8978560 100644 --- a/usr/src/uts/sfmmu/ml/sfmmu_kdi.s +++ b/usr/src/uts/sfmmu/ml/sfmmu_kdi.s @@ -24,10 +24,8 @@ * Use is subject to license terms. */ -#if !defined(lint) #include <sys/asm_linkage.h> #include "assym.h" -#endif #include <sys/sun4asi.h> #include <sys/machparam.h> @@ -250,21 +248,6 @@ ttep_calc: /* idx in %g1 */ \ * } */ -#if defined(lint) -/*ARGSUSED*/ -int -kdi_vatotte(uintptr_t va, int cnum, tte_t *ttep) -{ - return (0); -} - -void -kdi_trap_vatotte(void) -{ -} - -#else - /* * Invocation in normal context as a VA-to-TTE translator * for kernel context only. This routine returns 0 on @@ -343,4 +326,3 @@ kdi_trap_vatotte(void) nop SET_SIZE(kdi_trap_vatotte) -#endif /* lint */ |