Loading arch/sparc/kernel/wuf.S +3 −57 Original line number Diff line number Diff line Loading @@ -131,11 +131,8 @@ fwin_from_user: /* LOCATION: Window 'W' */ /* Branch to the architecture specific stack validation * routine. They can be found below... */ .globl fwin_mmu_patchme fwin_mmu_patchme: b sun4c_fwin_stackchk /* Branch to the stack validation routine */ b srmmu_fwin_stackchk andcc %sp, 0x7, %g0 #define STACK_OFFSET (THREAD_SIZE - TRACEREG_SZ - STACKFRAME_SZ) Loading Loading @@ -242,57 +239,6 @@ fwin_user_finish_up: * 'someone elses' window possibly. */ .align 4 sun4c_fwin_stackchk: /* LOCATION: Window 'W' */ /* Caller did 'andcc %sp, 0x7, %g0' */ be 1f and %sp, 0xfff, %l0 ! delay slot b,a fwin_user_stack_is_bolixed /* See if we have to check the sanity of one page or two */ 1: add %l0, 0x38, %l0 sra %sp, 29, %l5 add %l5, 0x1, %l5 andncc %l5, 0x1, %g0 be 1f andncc %l0, 0xff8, %g0 b,a fwin_user_stack_is_bolixed /* %sp is in vma hole, yuck */ 1: be sun4c_fwin_onepage /* Only one page to check */ lda [%sp] ASI_PTE, %l1 sun4c_fwin_twopages: add %sp, 0x38, %l0 sra %l0, 29, %l5 add %l5, 0x1, %l5 andncc %l5, 0x1, %g0 be 1f lda [%l0] ASI_PTE, %l1 b,a fwin_user_stack_is_bolixed /* Second page in vma hole */ 1: srl %l1, 29, %l1 andcc %l1, 0x4, %g0 bne sun4c_fwin_onepage lda [%sp] ASI_PTE, %l1 b,a fwin_user_stack_is_bolixed /* Second page has bad perms */ sun4c_fwin_onepage: srl %l1, 29, %l1 andcc %l1, 0x4, %g0 bne fwin_user_stack_is_ok nop /* A page had bad page permissions, losing... */ b,a fwin_user_stack_is_bolixed .globl srmmu_fwin_stackchk srmmu_fwin_stackchk: /* LOCATION: Window 'W' */ Loading arch/sparc/mm/srmmu.c +0 −1 Original line number Diff line number Diff line Loading @@ -2145,7 +2145,6 @@ static void __init patch_window_trap_handlers(void) unsigned long *iaddr, *daddr; PATCH_BRANCH(spwin_mmu_patchme, spwin_srmmu_stackchk); PATCH_BRANCH(fwin_mmu_patchme, srmmu_fwin_stackchk); PATCH_BRANCH(tsetup_mmu_patchme, tsetup_srmmu_stackchk); PATCH_BRANCH(rtrap_mmu_patchme, srmmu_rett_stackchk); } Loading Loading
arch/sparc/kernel/wuf.S +3 −57 Original line number Diff line number Diff line Loading @@ -131,11 +131,8 @@ fwin_from_user: /* LOCATION: Window 'W' */ /* Branch to the architecture specific stack validation * routine. They can be found below... */ .globl fwin_mmu_patchme fwin_mmu_patchme: b sun4c_fwin_stackchk /* Branch to the stack validation routine */ b srmmu_fwin_stackchk andcc %sp, 0x7, %g0 #define STACK_OFFSET (THREAD_SIZE - TRACEREG_SZ - STACKFRAME_SZ) Loading Loading @@ -242,57 +239,6 @@ fwin_user_finish_up: * 'someone elses' window possibly. */ .align 4 sun4c_fwin_stackchk: /* LOCATION: Window 'W' */ /* Caller did 'andcc %sp, 0x7, %g0' */ be 1f and %sp, 0xfff, %l0 ! delay slot b,a fwin_user_stack_is_bolixed /* See if we have to check the sanity of one page or two */ 1: add %l0, 0x38, %l0 sra %sp, 29, %l5 add %l5, 0x1, %l5 andncc %l5, 0x1, %g0 be 1f andncc %l0, 0xff8, %g0 b,a fwin_user_stack_is_bolixed /* %sp is in vma hole, yuck */ 1: be sun4c_fwin_onepage /* Only one page to check */ lda [%sp] ASI_PTE, %l1 sun4c_fwin_twopages: add %sp, 0x38, %l0 sra %l0, 29, %l5 add %l5, 0x1, %l5 andncc %l5, 0x1, %g0 be 1f lda [%l0] ASI_PTE, %l1 b,a fwin_user_stack_is_bolixed /* Second page in vma hole */ 1: srl %l1, 29, %l1 andcc %l1, 0x4, %g0 bne sun4c_fwin_onepage lda [%sp] ASI_PTE, %l1 b,a fwin_user_stack_is_bolixed /* Second page has bad perms */ sun4c_fwin_onepage: srl %l1, 29, %l1 andcc %l1, 0x4, %g0 bne fwin_user_stack_is_ok nop /* A page had bad page permissions, losing... */ b,a fwin_user_stack_is_bolixed .globl srmmu_fwin_stackchk srmmu_fwin_stackchk: /* LOCATION: Window 'W' */ Loading
arch/sparc/mm/srmmu.c +0 −1 Original line number Diff line number Diff line Loading @@ -2145,7 +2145,6 @@ static void __init patch_window_trap_handlers(void) unsigned long *iaddr, *daddr; PATCH_BRANCH(spwin_mmu_patchme, spwin_srmmu_stackchk); PATCH_BRANCH(fwin_mmu_patchme, srmmu_fwin_stackchk); PATCH_BRANCH(tsetup_mmu_patchme, tsetup_srmmu_stackchk); PATCH_BRANCH(rtrap_mmu_patchme, srmmu_rett_stackchk); } Loading