diff options
author | Greg Ungerer <gerg@uclinux.org> | 2011-08-30 02:11:05 -0400 |
---|---|---|
committer | Greg Ungerer <gerg@uclinux.org> | 2011-12-24 06:47:56 -0500 |
commit | 409ee2455c95495e182379883a568df1d40f5864 (patch) | |
tree | e6964d749ecf40ab73656ac805a165e10d72cc8a | |
parent | ed3da2c443e8d566a8eb0ab86069aefc7e928c74 (diff) |
m68k: merge the init_task code for mmu and non-mmu targets
The init_task code can be the same for both mmu and non-mmu targets.
None of the alignment carried out in the the current init_task code
is necessary. The linker script takes care of aligning the init_thread
structure to a THREAD SIZE boundary, and that is all we need.
So use the init_task.c code for all target types, that makes m68k
code consistent with what most other architectures do.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
-rw-r--r-- | arch/m68k/kernel/Makefile | 7 | ||||
-rw-r--r-- | arch/m68k/kernel/init_task.c | 3 | ||||
-rw-r--r-- | arch/m68k/kernel/process_mm.c | 16 |
3 files changed, 3 insertions, 23 deletions
diff --git a/arch/m68k/kernel/Makefile b/arch/m68k/kernel/Makefile index c5696193281a..ea0a39671438 100644 --- a/arch/m68k/kernel/Makefile +++ b/arch/m68k/kernel/Makefile | |||
@@ -6,15 +6,12 @@ extra-$(CONFIG_MMU) := head.o | |||
6 | extra-$(CONFIG_SUN3) := sun3-head.o | 6 | extra-$(CONFIG_SUN3) := sun3-head.o |
7 | extra-y += vmlinux.lds | 7 | extra-y += vmlinux.lds |
8 | 8 | ||
9 | obj-y := entry.o irq.o m68k_ksyms.o module.o process.o ptrace.o setup.o \ | 9 | obj-y := entry.o init_task.o irq.o m68k_ksyms.o module.o process.o ptrace.o |
10 | signal.o sys_m68k.o syscalltable.o time.o traps.o | 10 | obj-y += setup.o signal.o sys_m68k.o syscalltable.o time.o traps.o |
11 | 11 | ||
12 | obj-$(CONFIG_MMU) += ints.o vectors.o | 12 | obj-$(CONFIG_MMU) += ints.o vectors.o |
13 | 13 | ||
14 | ifndef CONFIG_MMU_SUN3 | 14 | ifndef CONFIG_MMU_SUN3 |
15 | obj-y += dma.o | 15 | obj-y += dma.o |
16 | endif | 16 | endif |
17 | ifndef CONFIG_MMU | ||
18 | obj-y += init_task.o | ||
19 | endif | ||
20 | 17 | ||
diff --git a/arch/m68k/kernel/init_task.c b/arch/m68k/kernel/init_task.c index cbf9dc3cc51d..c744cfc6bfa1 100644 --- a/arch/m68k/kernel/init_task.c +++ b/arch/m68k/kernel/init_task.c | |||
@@ -19,7 +19,6 @@ static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |||
19 | * | 19 | * |
20 | * All other task structs will be allocated on slabs in fork.c | 20 | * All other task structs will be allocated on slabs in fork.c |
21 | */ | 21 | */ |
22 | __asm__(".align 4"); | ||
23 | struct task_struct init_task = INIT_TASK(init_task); | 22 | struct task_struct init_task = INIT_TASK(init_task); |
24 | 23 | ||
25 | EXPORT_SYMBOL(init_task); | 24 | EXPORT_SYMBOL(init_task); |
@@ -27,7 +26,7 @@ EXPORT_SYMBOL(init_task); | |||
27 | /* | 26 | /* |
28 | * Initial thread structure. | 27 | * Initial thread structure. |
29 | * | 28 | * |
30 | * We need to make sure that this is 8192-byte aligned due to the | 29 | * We need to make sure that this is THREAD size aligned due to the |
31 | * way process stacks are handled. This is done by having a special | 30 | * way process stacks are handled. This is done by having a special |
32 | * "init_task" linker map entry.. | 31 | * "init_task" linker map entry.. |
33 | */ | 32 | */ |
diff --git a/arch/m68k/kernel/process_mm.c b/arch/m68k/kernel/process_mm.c index 1bc223aa07ec..58a3253f3eb9 100644 --- a/arch/m68k/kernel/process_mm.c +++ b/arch/m68k/kernel/process_mm.c | |||
@@ -33,22 +33,6 @@ | |||
33 | #include <asm/setup.h> | 33 | #include <asm/setup.h> |
34 | #include <asm/pgtable.h> | 34 | #include <asm/pgtable.h> |
35 | 35 | ||
36 | /* | ||
37 | * Initial task/thread structure. Make this a per-architecture thing, | ||
38 | * because different architectures tend to have different | ||
39 | * alignment requirements and potentially different initial | ||
40 | * setup. | ||
41 | */ | ||
42 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | ||
43 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | ||
44 | union thread_union init_thread_union __init_task_data | ||
45 | __attribute__((aligned(THREAD_SIZE))) = | ||
46 | { INIT_THREAD_INFO(init_task) }; | ||
47 | |||
48 | /* initial task structure */ | ||
49 | struct task_struct init_task = INIT_TASK(init_task); | ||
50 | |||
51 | EXPORT_SYMBOL(init_task); | ||
52 | 36 | ||
53 | asmlinkage void ret_from_fork(void); | 37 | asmlinkage void ret_from_fork(void); |
54 | 38 | ||