diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 22:43:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-21 22:43:57 -0400 |
commit | bf67f3a5c456a18f2e8d062f7e88506ef2cd9837 (patch) | |
tree | 2a2324b2572162059307db82f9238eeb25673a77 /arch/frv | |
parent | 226da0dbc84ed97f448523e2a4cb91c27fa68ed9 (diff) | |
parent | 203dacbdca977bedaba61ad2fca75d934060a5d5 (diff) |
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull smp hotplug cleanups from Thomas Gleixner:
"This series is merily a cleanup of code copied around in arch/* and
not changing any of the real cpu hotplug horrors yet. I wish I'd had
something more substantial for 3.5, but I underestimated the lurking
horror..."
Fix up trivial conflicts in arch/{arm,sparc,x86}/Kconfig and
arch/sparc/include/asm/thread_info_32.h
* 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
um: Remove leftover declaration of alloc_task_struct_node()
task_allocator: Use config switches instead of magic defines
sparc: Use common threadinfo allocator
score: Use common threadinfo allocator
sh-use-common-threadinfo-allocator
mn10300: Use common threadinfo allocator
powerpc: Use common threadinfo allocator
mips: Use common threadinfo allocator
hexagon: Use common threadinfo allocator
m32r: Use common threadinfo allocator
frv: Use common threadinfo allocator
cris: Use common threadinfo allocator
x86: Use common threadinfo allocator
c6x: Use common threadinfo allocator
fork: Provide kmemcache based thread_info allocator
tile: Use common threadinfo allocator
fork: Provide weak arch_release_[task_struct|thread_info] functions
fork: Move thread info gfp flags to header
fork: Remove the weak insanity
sh: Remove cpu_idle_wait()
...
Diffstat (limited to 'arch/frv')
-rw-r--r-- | arch/frv/Makefile | 2 | ||||
-rw-r--r-- | arch/frv/include/asm/thread_info.h | 15 | ||||
-rw-r--r-- | arch/frv/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/frv/kernel/init_task.c | 32 | ||||
-rw-r--r-- | arch/frv/kernel/process.c | 15 |
5 files changed, 2 insertions, 64 deletions
diff --git a/arch/frv/Makefile b/arch/frv/Makefile index 7ff84575b186..4d1b1e9baef1 100644 --- a/arch/frv/Makefile +++ b/arch/frv/Makefile | |||
@@ -81,7 +81,7 @@ ifdef CONFIG_DEBUG_INFO | |||
81 | KBUILD_AFLAGS += -Wa,--gdwarf2 | 81 | KBUILD_AFLAGS += -Wa,--gdwarf2 |
82 | endif | 82 | endif |
83 | 83 | ||
84 | head-y := arch/frv/kernel/head.o arch/frv/kernel/init_task.o | 84 | head-y := arch/frv/kernel/head.o |
85 | 85 | ||
86 | core-y += arch/frv/kernel/ arch/frv/mm/ | 86 | core-y += arch/frv/kernel/ arch/frv/mm/ |
87 | libs-y += arch/frv/lib/ | 87 | libs-y += arch/frv/lib/ |
diff --git a/arch/frv/include/asm/thread_info.h b/arch/frv/include/asm/thread_info.h index 92d83ea99ae5..54ab13a0de41 100644 --- a/arch/frv/include/asm/thread_info.h +++ b/arch/frv/include/asm/thread_info.h | |||
@@ -21,8 +21,6 @@ | |||
21 | 21 | ||
22 | #define THREAD_SIZE 8192 | 22 | #define THREAD_SIZE 8192 |
23 | 23 | ||
24 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR | ||
25 | |||
26 | /* | 24 | /* |
27 | * low level task data that entry.S needs immediate access to | 25 | * low level task data that entry.S needs immediate access to |
28 | * - this struct should fit entirely inside of one cache line | 26 | * - this struct should fit entirely inside of one cache line |
@@ -82,19 +80,6 @@ register struct thread_info *__current_thread_info asm("gr15"); | |||
82 | 80 | ||
83 | #define current_thread_info() ({ __current_thread_info; }) | 81 | #define current_thread_info() ({ __current_thread_info; }) |
84 | 82 | ||
85 | #define __HAVE_ARCH_THREAD_INFO_ALLOCATOR | ||
86 | |||
87 | /* thread information allocation */ | ||
88 | #ifdef CONFIG_DEBUG_STACK_USAGE | ||
89 | #define alloc_thread_info_node(tsk, node) \ | ||
90 | kzalloc_node(THREAD_SIZE, GFP_KERNEL, node) | ||
91 | #else | ||
92 | #define alloc_thread_info_node(tsk, node) \ | ||
93 | kmalloc_node(THREAD_SIZE, GFP_KERNEL, node) | ||
94 | #endif | ||
95 | |||
96 | #define free_thread_info(info) kfree(info) | ||
97 | |||
98 | #endif /* __ASSEMBLY__ */ | 83 | #endif /* __ASSEMBLY__ */ |
99 | 84 | ||
100 | /* | 85 | /* |
diff --git a/arch/frv/kernel/Makefile b/arch/frv/kernel/Makefile index c36f70b6699a..ad4087b69968 100644 --- a/arch/frv/kernel/Makefile +++ b/arch/frv/kernel/Makefile | |||
@@ -5,7 +5,7 @@ | |||
5 | heads-y := head-uc-fr401.o head-uc-fr451.o head-uc-fr555.o | 5 | heads-y := head-uc-fr401.o head-uc-fr451.o head-uc-fr555.o |
6 | heads-$(CONFIG_MMU) := head-mmu-fr451.o | 6 | heads-$(CONFIG_MMU) := head-mmu-fr451.o |
7 | 7 | ||
8 | extra-y:= head.o init_task.o vmlinux.lds | 8 | extra-y:= head.o vmlinux.lds |
9 | 9 | ||
10 | obj-y := $(heads-y) entry.o entry-table.o break.o switch_to.o kernel_thread.o \ | 10 | obj-y := $(heads-y) entry.o entry-table.o break.o switch_to.o kernel_thread.o \ |
11 | kernel_execve.o process.o traps.o ptrace.o signal.o dma.o \ | 11 | kernel_execve.o process.o traps.o ptrace.o signal.o dma.o \ |
diff --git a/arch/frv/kernel/init_task.c b/arch/frv/kernel/init_task.c deleted file mode 100644 index 3c3e0b336a9d..000000000000 --- a/arch/frv/kernel/init_task.c +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | #include <linux/mm.h> | ||
2 | #include <linux/module.h> | ||
3 | #include <linux/sched.h> | ||
4 | #include <linux/init.h> | ||
5 | #include <linux/init_task.h> | ||
6 | #include <linux/fs.h> | ||
7 | #include <linux/mqueue.h> | ||
8 | |||
9 | #include <asm/uaccess.h> | ||
10 | #include <asm/pgtable.h> | ||
11 | |||
12 | |||
13 | static struct signal_struct init_signals = INIT_SIGNALS(init_signals); | ||
14 | static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); | ||
15 | /* | ||
16 | * Initial thread structure. | ||
17 | * | ||
18 | * We need to make sure that this is THREAD_SIZE aligned due to the | ||
19 | * way process stacks are handled. This is done by having a special | ||
20 | * "init_task" linker map entry.. | ||
21 | */ | ||
22 | union thread_union init_thread_union __init_task_data = | ||
23 | { INIT_THREAD_INFO(init_task) }; | ||
24 | |||
25 | /* | ||
26 | * Initial task structure. | ||
27 | * | ||
28 | * All other task structs will be allocated on slabs in fork.c | ||
29 | */ | ||
30 | struct task_struct init_task = INIT_TASK(init_task); | ||
31 | |||
32 | EXPORT_SYMBOL(init_task); | ||
diff --git a/arch/frv/kernel/process.c b/arch/frv/kernel/process.c index d4de48bd5efe..ed09e9e2c653 100644 --- a/arch/frv/kernel/process.c +++ b/arch/frv/kernel/process.c | |||
@@ -43,21 +43,6 @@ asmlinkage void ret_from_fork(void); | |||
43 | void (*pm_power_off)(void); | 43 | void (*pm_power_off)(void); |
44 | EXPORT_SYMBOL(pm_power_off); | 44 | EXPORT_SYMBOL(pm_power_off); |
45 | 45 | ||
46 | struct task_struct *alloc_task_struct_node(int node) | ||
47 | { | ||
48 | struct task_struct *p = kmalloc_node(THREAD_SIZE, GFP_KERNEL, node); | ||
49 | |||
50 | if (p) | ||
51 | atomic_set((atomic_t *)(p+1), 1); | ||
52 | return p; | ||
53 | } | ||
54 | |||
55 | void free_task_struct(struct task_struct *p) | ||
56 | { | ||
57 | if (atomic_dec_and_test((atomic_t *)(p+1))) | ||
58 | kfree(p); | ||
59 | } | ||
60 | |||
61 | static void core_sleep_idle(void) | 46 | static void core_sleep_idle(void) |
62 | { | 47 | { |
63 | #ifdef LED_DEBUG_SLEEP | 48 | #ifdef LED_DEBUG_SLEEP |