sparc32: get rid of fake_swapper_regs
no reason to have ->kregs of initial thread set up in a special way - we can keep them on stack, same as for every other thread. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
d17b9ec777
commit
af7652500b
@ -60,6 +60,7 @@ struct thread_struct {
|
|||||||
#define INIT_THREAD { \
|
#define INIT_THREAD { \
|
||||||
.flags = SPARC_FLAG_KTHREAD, \
|
.flags = SPARC_FLAG_KTHREAD, \
|
||||||
.current_ds = KERNEL_DS, \
|
.current_ds = KERNEL_DS, \
|
||||||
|
.kregs = (struct pt_regs *)(init_stack+THREAD_SIZE)-1 \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Do necessary setup to start up a newly executed thread. */
|
/* Do necessary setup to start up a newly executed thread. */
|
||||||
|
@ -515,7 +515,7 @@ continue_boot:
|
|||||||
|
|
||||||
/* I want a kernel stack NOW! */
|
/* I want a kernel stack NOW! */
|
||||||
set init_thread_union, %g1
|
set init_thread_union, %g1
|
||||||
set (THREAD_SIZE - STACKFRAME_SZ), %g2
|
set (THREAD_SIZE - STACKFRAME_SZ - TRACEREG_SZ), %g2
|
||||||
add %g1, %g2, %sp
|
add %g1, %g2, %sp
|
||||||
mov 0, %fp /* And for good luck */
|
mov 0, %fp /* And for good luck */
|
||||||
|
|
||||||
|
@ -218,14 +218,7 @@ void flush_thread(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* This task is no longer a kernel thread. */
|
/* This task is no longer a kernel thread. */
|
||||||
if (current->thread.flags & SPARC_FLAG_KTHREAD) {
|
current->thread.flags &= ~SPARC_FLAG_KTHREAD;
|
||||||
current->thread.flags &= ~SPARC_FLAG_KTHREAD;
|
|
||||||
|
|
||||||
/* We must fixup kregs as well. */
|
|
||||||
/* XXX This was not fixed for ti for a while, worked. Unused? */
|
|
||||||
current->thread.kregs = (struct pt_regs *)
|
|
||||||
(task_stack_page(current) + (THREAD_SIZE - TRACEREG_SZ));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline struct sparc_stackf __user *
|
static inline struct sparc_stackf __user *
|
||||||
|
@ -266,7 +266,6 @@ static __init void leon_patch(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct tt_entry *sparc_ttable;
|
struct tt_entry *sparc_ttable;
|
||||||
static struct pt_regs fake_swapper_regs;
|
|
||||||
|
|
||||||
/* Called from head_32.S - before we have setup anything
|
/* Called from head_32.S - before we have setup anything
|
||||||
* in the kernel. Be very careful with what you do here.
|
* in the kernel. Be very careful with what you do here.
|
||||||
@ -363,8 +362,6 @@ void __init setup_arch(char **cmdline_p)
|
|||||||
(*(linux_dbvec->teach_debugger))();
|
(*(linux_dbvec->teach_debugger))();
|
||||||
}
|
}
|
||||||
|
|
||||||
init_task.thread.kregs = &fake_swapper_regs;
|
|
||||||
|
|
||||||
/* Run-time patch instructions to match the cpu model */
|
/* Run-time patch instructions to match the cpu model */
|
||||||
per_cpu_patch();
|
per_cpu_patch();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user