Commit b28017f57f1ec16ab515e99d863bf9f33ea0d737
Committed by
David S. Miller
1 parent
757498c63e
Exists in
master
and in
7 other branches
sparc: unify kernel/init_task
A closer inspection revealed that these two files had identical functionality - but the implementation of it differed slightly. Base it on the sparc version as it was the best. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 5 changed files with 30 additions and 65 deletions Side-by-side Diff
arch/sparc/Makefile
arch/sparc/kernel/Makefile
arch/sparc/kernel/init_task.c
1 | +#include <linux/mm.h> | |
2 | +#include <linux/fs.h> | |
3 | +#include <linux/module.h> | |
4 | +#include <linux/sched.h> | |
5 | +#include <linux/init_task.h> | |
6 | +#include <linux/mqueue.h> | |
7 | + | |
8 | +#include <asm/pgtable.h> | |
9 | +#include <asm/uaccess.h> | |
10 | + | |
11 | +static struct fs_struct init_fs = INIT_FS; | |
12 | +static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | |
13 | +static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |
14 | +struct mm_struct init_mm = INIT_MM(init_mm); | |
15 | +struct task_struct init_task = INIT_TASK(init_task); | |
16 | + | |
17 | +EXPORT_SYMBOL(init_mm); | |
18 | +EXPORT_SYMBOL(init_task); | |
19 | + | |
20 | +/* .text section in head.S is aligned at 8k boundary and this gets linked | |
21 | + * right after that so that the init_thread_union is aligned properly as well. | |
22 | + * If this is not aligned on a 8k boundry, then you should change code | |
23 | + * in etrap.S which assumes it. | |
24 | + */ | |
25 | +union thread_union init_thread_union | |
26 | + __attribute__((section (".text\"\n\t#"))) | |
27 | + __attribute__((aligned (THREAD_SIZE))) | |
28 | + = { INIT_THREAD_INFO(init_task) }; |
arch/sparc/kernel/init_task_32.c
1 | -#include <linux/mm.h> | |
2 | -#include <linux/fs.h> | |
3 | -#include <linux/module.h> | |
4 | -#include <linux/sched.h> | |
5 | -#include <linux/init_task.h> | |
6 | -#include <linux/mqueue.h> | |
7 | - | |
8 | -#include <asm/pgtable.h> | |
9 | -#include <asm/uaccess.h> | |
10 | - | |
11 | -static struct fs_struct init_fs = INIT_FS; | |
12 | -static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | |
13 | -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |
14 | -struct mm_struct init_mm = INIT_MM(init_mm); | |
15 | -struct task_struct init_task = INIT_TASK(init_task); | |
16 | - | |
17 | -EXPORT_SYMBOL(init_mm); | |
18 | -EXPORT_SYMBOL(init_task); | |
19 | - | |
20 | -/* .text section in head.S is aligned at 8k boundary and this gets linked | |
21 | - * right after that so that the init_thread_union is aligned properly as well. | |
22 | - * If this is not aligned on a 8k boundry, then you should change code | |
23 | - * in etrap.S which assumes it. | |
24 | - */ | |
25 | -union thread_union init_thread_union | |
26 | - __attribute__((section (".text\"\n\t#"))) | |
27 | - __attribute__((aligned (THREAD_SIZE))) | |
28 | - = { INIT_THREAD_INFO(init_task) }; |
arch/sparc/kernel/init_task_64.c
1 | -#include <linux/mm.h> | |
2 | -#include <linux/fs.h> | |
3 | -#include <linux/module.h> | |
4 | -#include <linux/sched.h> | |
5 | -#include <linux/init_task.h> | |
6 | -#include <linux/mqueue.h> | |
7 | - | |
8 | -#include <asm/pgtable.h> | |
9 | -#include <asm/uaccess.h> | |
10 | -#include <asm/processor.h> | |
11 | - | |
12 | -static struct fs_struct init_fs = INIT_FS; | |
13 | -static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | |
14 | -static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | |
15 | -struct mm_struct init_mm = INIT_MM(init_mm); | |
16 | - | |
17 | -EXPORT_SYMBOL(init_mm); | |
18 | - | |
19 | -/* .text section in head.S is aligned at 2 page boundary and this gets linked | |
20 | - * right after that so that the init_thread_union is aligned properly as well. | |
21 | - * We really don't need this special alignment like the Intel does, but | |
22 | - * I do it anyways for completeness. | |
23 | - */ | |
24 | -__asm__ (".text"); | |
25 | -union thread_union init_thread_union = { INIT_THREAD_INFO(init_task) }; | |
26 | - | |
27 | -/* | |
28 | - * Initial task structure. | |
29 | - * | |
30 | - * All other task structs will be allocated on slabs in fork.c | |
31 | - */ | |
32 | -EXPORT_SYMBOL(init_task); | |
33 | - | |
34 | -__asm__(".data"); | |
35 | -struct task_struct init_task = INIT_TASK(init_task); |