sparc32: drop sun4c window overflow stack checking routine
Also drop run-time patching for srmmu Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
28de2f7339
commit
054768a132
2 changed files with 2 additions and 71 deletions
|
@ -163,9 +163,8 @@ spwin_fromuser:
|
|||
* the label 'spwin_user_stack_is_bolixed' which will take
|
||||
* care of things at that point.
|
||||
*/
|
||||
.globl spwin_mmu_patchme
|
||||
spwin_mmu_patchme: b spwin_sun4c_stackchk
|
||||
andcc %sp, 0x7, %g0
|
||||
b spwin_srmmu_stackchk
|
||||
andcc %sp, 0x7, %g0
|
||||
|
||||
spwin_good_ustack:
|
||||
/* LOCATION: Window to be saved */
|
||||
|
@ -306,73 +305,6 @@ spwin_bad_ustack_from_kernel:
|
|||
* As noted above %curptr cannot be touched by this routine at all.
|
||||
*/
|
||||
|
||||
spwin_sun4c_stackchk:
|
||||
/* LOCATION: Window to be saved on the stack */
|
||||
|
||||
/* See if the stack is in the address space hole but first,
|
||||
* check results of callers andcc %sp, 0x7, %g0
|
||||
*/
|
||||
be 1f
|
||||
sra %sp, 29, %glob_tmp
|
||||
|
||||
rd %psr, %glob_tmp
|
||||
b spwin_user_stack_is_bolixed + 0x4
|
||||
nop
|
||||
|
||||
1:
|
||||
add %glob_tmp, 0x1, %glob_tmp
|
||||
andncc %glob_tmp, 0x1, %g0
|
||||
be 1f
|
||||
and %sp, 0xfff, %glob_tmp ! delay slot
|
||||
|
||||
rd %psr, %glob_tmp
|
||||
b spwin_user_stack_is_bolixed + 0x4
|
||||
nop
|
||||
|
||||
/* See if our dump area will be on more than one
|
||||
* page.
|
||||
*/
|
||||
1:
|
||||
add %glob_tmp, 0x38, %glob_tmp
|
||||
andncc %glob_tmp, 0xff8, %g0
|
||||
be spwin_sun4c_onepage ! only one page to check
|
||||
lda [%sp] ASI_PTE, %glob_tmp ! have to check first page anyways
|
||||
|
||||
spwin_sun4c_twopages:
|
||||
/* Is first page ok permission wise? */
|
||||
srl %glob_tmp, 29, %glob_tmp
|
||||
cmp %glob_tmp, 0x6
|
||||
be 1f
|
||||
add %sp, 0x38, %glob_tmp /* Is second page in vma hole? */
|
||||
|
||||
rd %psr, %glob_tmp
|
||||
b spwin_user_stack_is_bolixed + 0x4
|
||||
nop
|
||||
|
||||
1:
|
||||
sra %glob_tmp, 29, %glob_tmp
|
||||
add %glob_tmp, 0x1, %glob_tmp
|
||||
andncc %glob_tmp, 0x1, %g0
|
||||
be 1f
|
||||
add %sp, 0x38, %glob_tmp
|
||||
|
||||
rd %psr, %glob_tmp
|
||||
b spwin_user_stack_is_bolixed + 0x4
|
||||
nop
|
||||
|
||||
1:
|
||||
lda [%glob_tmp] ASI_PTE, %glob_tmp
|
||||
|
||||
spwin_sun4c_onepage:
|
||||
srl %glob_tmp, 29, %glob_tmp
|
||||
cmp %glob_tmp, 0x6 ! can user write to it?
|
||||
be spwin_good_ustack ! success
|
||||
nop
|
||||
|
||||
rd %psr, %glob_tmp
|
||||
b spwin_user_stack_is_bolixed + 0x4
|
||||
nop
|
||||
|
||||
/* This is a generic SRMMU routine. As far as I know this
|
||||
* works for all current v8/srmmu implementations, we'll
|
||||
* see...
|
||||
|
|
|
@ -2144,7 +2144,6 @@ static void __init patch_window_trap_handlers(void)
|
|||
{
|
||||
unsigned long *iaddr, *daddr;
|
||||
|
||||
PATCH_BRANCH(spwin_mmu_patchme, spwin_srmmu_stackchk);
|
||||
PATCH_BRANCH(tsetup_mmu_patchme, tsetup_srmmu_stackchk);
|
||||
PATCH_BRANCH(rtrap_mmu_patchme, srmmu_rett_stackchk);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue