mips: Use generic init_task
authorThomas Gleixner <tglx@linutronix.de>
Thu, 3 May 2012 09:02:55 +0000 (09:02 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 5 May 2012 11:00:24 +0000 (13:00 +0200)
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
arch/mips/Kconfig
arch/mips/Makefile
arch/mips/kernel/Makefile
arch/mips/kernel/init_task.c [deleted file]
arch/mips/kernel/vmlinux.lds.S

index 186fc8cf9ee0b37c4ef7def5d423cb67e8f6db77..d6c78901e5f27785e27b379b39d0503b7b07c68a 100644 (file)
@@ -30,6 +30,7 @@ config MIPS
        select HAVE_MEMBLOCK_NODE_MAP
        select ARCH_DISCARD_MEMBLOCK
        select GENERIC_SMP_IDLE_THREAD
+       select HAVE_GENERIC_INIT_TASK
 
 menu "Machine selection"
 
index 4fedf5a51d965ab9cea3798ab1d2ed3c5298a10b..76017c25a9e6fd1af1ea1ac215658548c99f2156 100644 (file)
@@ -235,7 +235,7 @@ endif
 
 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/
 
index 0c6877ea900495f547e087be39c11870d1d95dd7..fdaf65e1a99d04ca07d9b5a440d584bccd040029 100644 (file)
@@ -2,7 +2,7 @@
 # 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 \
                   ptrace.o reset.o setup.o signal.o syscall.o \
diff --git a/arch/mips/kernel/init_task.c b/arch/mips/kernel/init_task.c
deleted file mode 100644 (file)
index 5f9a762..0000000
+++ /dev/null
@@ -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);
index 924da5eb7031498ea93dc050a7492aa78f5bb0ec..e6772f2cf3df85db751925df637dae70394d7f84 100644 (file)
@@ -72,7 +72,7 @@ SECTIONS
        .data : {       /* Data */
                . = . + DATAOFFSET;             /* for CONFIG_MAPPED_KERNEL */
 
-               INIT_TASK_DATA(PAGE_SIZE)
+               INIT_TASK_DATA(THREAD_SIZE)
                NOSAVE_DATA
                CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
                READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)