m68k: remove thread_info struct from thread struct
Currently on m68k we have a comeplete thread_info structure stored inside of the thread_struct, and we also have it in the initial part of the kernel stack. Mostly the code currently uses the one inside of the thread_struct, only using the "task" pointer from the stack based one. This is wasteful and confusing, we should only have the single instance of thread_info inside the stack page. And this is the norm for all other architectures. This change makes m68k handle thread_info consistently on both MMU enabled and non-MMU setups. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
This commit is contained in:
@@ -88,14 +88,12 @@ struct thread_struct {
|
||||
unsigned long fp[8*3];
|
||||
unsigned long fpcntl[3]; /* fp control regs */
|
||||
unsigned char fpstate[FPSTATESIZE]; /* floating point state */
|
||||
struct thread_info info;
|
||||
};
|
||||
|
||||
#define INIT_THREAD { \
|
||||
.ksp = sizeof(init_stack) + (unsigned long) init_stack, \
|
||||
.sr = PS_S, \
|
||||
.fs = __KERNEL_DS, \
|
||||
.info = INIT_THREAD_INFO(init_task), \
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
@@ -47,34 +47,6 @@ struct thread_info {
|
||||
|
||||
#define init_stack (init_thread_union.stack)
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/current.h>
|
||||
#endif
|
||||
|
||||
#ifdef ASM_OFFSETS_C
|
||||
#define task_thread_info(tsk) ((struct thread_info *) NULL)
|
||||
#else
|
||||
#include <asm/asm-offsets.h>
|
||||
#define task_thread_info(tsk) ((struct thread_info *)((char *)tsk+TASK_INFO))
|
||||
#endif
|
||||
|
||||
#define init_thread_info (init_task.thread.info)
|
||||
#define task_stack_page(tsk) ((tsk)->stack)
|
||||
#define current_thread_info() task_thread_info(current)
|
||||
|
||||
#define __HAVE_THREAD_FUNCTIONS
|
||||
|
||||
#define setup_thread_stack(p, org) ({ \
|
||||
*(struct task_struct **)(p)->stack = (p); \
|
||||
task_thread_info(p)->task = (p); \
|
||||
})
|
||||
|
||||
#define end_of_stack(p) ((unsigned long *)(p)->stack + 1)
|
||||
|
||||
#else /* !CONFIG_MMU */
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
/* how to get the thread information struct from C */
|
||||
static inline struct thread_info *current_thread_info(void)
|
||||
@@ -92,8 +64,6 @@ static inline struct thread_info *current_thread_info(void)
|
||||
|
||||
#define init_thread_info (init_thread_union.thread_info)
|
||||
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
/* entry.S relies on these definitions!
|
||||
* bits 0-7 are tested at every exception exit
|
||||
* bits 8-15 are also tested at syscall exit
|
||||
|
Reference in New Issue
Block a user