Commit 28de2f73 authored by Sam Ravnborg's avatar Sam Ravnborg Committed by David S. Miller

sparc32: drop sun4c specific stack validation

This allows us to kill run-time patching for this function too
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1ee0e144
...@@ -131,11 +131,8 @@ fwin_from_user: ...@@ -131,11 +131,8 @@ fwin_from_user:
/* LOCATION: Window 'W' */ /* LOCATION: Window 'W' */
/* Branch to the architecture specific stack validation /* Branch to the stack validation routine */
* routine. They can be found below... b srmmu_fwin_stackchk
*/
.globl fwin_mmu_patchme
fwin_mmu_patchme: b sun4c_fwin_stackchk
andcc %sp, 0x7, %g0 andcc %sp, 0x7, %g0
#define STACK_OFFSET (THREAD_SIZE - TRACEREG_SZ - STACKFRAME_SZ) #define STACK_OFFSET (THREAD_SIZE - TRACEREG_SZ - STACKFRAME_SZ)
...@@ -242,57 +239,6 @@ fwin_user_finish_up: ...@@ -242,57 +239,6 @@ fwin_user_finish_up:
* 'someone elses' window possibly. * '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 .globl srmmu_fwin_stackchk
srmmu_fwin_stackchk: srmmu_fwin_stackchk:
/* LOCATION: Window 'W' */ /* LOCATION: Window 'W' */
......
...@@ -2145,7 +2145,6 @@ static void __init patch_window_trap_handlers(void) ...@@ -2145,7 +2145,6 @@ static void __init patch_window_trap_handlers(void)
unsigned long *iaddr, *daddr; unsigned long *iaddr, *daddr;
PATCH_BRANCH(spwin_mmu_patchme, spwin_srmmu_stackchk); 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(tsetup_mmu_patchme, tsetup_srmmu_stackchk);
PATCH_BRANCH(rtrap_mmu_patchme, srmmu_rett_stackchk); PATCH_BRANCH(rtrap_mmu_patchme, srmmu_rett_stackchk);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment