mips: Use generic init_task
Same code. Use the generic version. The special Makefile treatment is pointless anyway as init_task.o contains only data which is handled by the linker script. So no point on being treated like head text. Make the linker script align the task on THREAD_SIZE and not on PAGE_SIZE, as PAGE_SIZE might be smaller than THREAD_SIZE. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ralf Baechle <ralf@linux-mips.org> Link: http://lkml.kernel.org/r/20120503085034.941344764@linutronix.de
This commit is contained in:
parent
16caadb8c8
commit
957b369c3d
5 changed files with 4 additions and 38 deletions
|
@ -30,6 +30,7 @@ config MIPS
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
select GENERIC_SMP_IDLE_THREAD
|
select GENERIC_SMP_IDLE_THREAD
|
||||||
|
select HAVE_GENERIC_INIT_TASK
|
||||||
|
|
||||||
menu "Machine selection"
|
menu "Machine selection"
|
||||||
|
|
||||||
|
|
|
@ -235,7 +235,7 @@ endif
|
||||||
|
|
||||||
OBJCOPYFLAGS += --remove-section=.reginfo
|
OBJCOPYFLAGS += --remove-section=.reginfo
|
||||||
|
|
||||||
head-y := arch/mips/kernel/head.o arch/mips/kernel/init_task.o
|
head-y := arch/mips/kernel/head.o
|
||||||
|
|
||||||
libs-y += arch/mips/lib/
|
libs-y += arch/mips/lib/
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# Makefile for the Linux/MIPS kernel.
|
# Makefile for the Linux/MIPS kernel.
|
||||||
#
|
#
|
||||||
|
|
||||||
extra-y := head.o init_task.o vmlinux.lds
|
extra-y := head.o vmlinux.lds
|
||||||
|
|
||||||
obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
|
obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
|
||||||
ptrace.o reset.o setup.o signal.o syscall.o \
|
ptrace.o reset.o setup.o signal.o syscall.o \
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
#include <linux/mm.h>
|
|
||||||
#include <linux/export.h>
|
|
||||||
#include <linux/sched.h>
|
|
||||||
#include <linux/init_task.h>
|
|
||||||
#include <linux/fs.h>
|
|
||||||
#include <linux/mqueue.h>
|
|
||||||
|
|
||||||
#include <asm/thread_info.h>
|
|
||||||
#include <asm/uaccess.h>
|
|
||||||
#include <asm/pgtable.h>
|
|
||||||
|
|
||||||
static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
|
|
||||||
static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
|
|
||||||
/*
|
|
||||||
* Initial thread structure.
|
|
||||||
*
|
|
||||||
* We need to make sure that this is 8192-byte aligned due to the
|
|
||||||
* way process stacks are handled. This is done by making sure
|
|
||||||
* the linker maps this in the .text segment right after head.S,
|
|
||||||
* and making head.S ensure the proper alignment.
|
|
||||||
*
|
|
||||||
* The things we do for performance..
|
|
||||||
*/
|
|
||||||
union thread_union init_thread_union __init_task_data
|
|
||||||
__attribute__((__aligned__(THREAD_SIZE))) =
|
|
||||||
{ INIT_THREAD_INFO(init_task) };
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initial task structure.
|
|
||||||
*
|
|
||||||
* All other task structs will be allocated on slabs in fork.c
|
|
||||||
*/
|
|
||||||
struct task_struct init_task = INIT_TASK(init_task);
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(init_task);
|
|
|
@ -72,7 +72,7 @@ SECTIONS
|
||||||
.data : { /* Data */
|
.data : { /* Data */
|
||||||
. = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
|
. = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
|
||||||
|
|
||||||
INIT_TASK_DATA(PAGE_SIZE)
|
INIT_TASK_DATA(THREAD_SIZE)
|
||||||
NOSAVE_DATA
|
NOSAVE_DATA
|
||||||
CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
||||||
READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
|
||||||
|
|
Loading…
Reference in a new issue