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/um | |
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/um')
-rw-r--r-- | arch/um/include/asm/processor-generic.h | 2 | ||||
-rw-r--r-- | arch/um/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/um/kernel/init_task.c | 38 | ||||
-rw-r--r-- | arch/um/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/um/kernel/um_arch.c | 5 |
5 files changed, 7 insertions, 42 deletions
diff --git a/arch/um/include/asm/processor-generic.h b/arch/um/include/asm/processor-generic.h index 98d01bc4fa92..7827394a5b6c 100644 --- a/arch/um/include/asm/processor-generic.h +++ b/arch/um/include/asm/processor-generic.h | |||
@@ -68,8 +68,6 @@ struct thread_struct { | |||
68 | .request = { 0 } \ | 68 | .request = { 0 } \ |
69 | } | 69 | } |
70 | 70 | ||
71 | extern struct task_struct *alloc_task_struct_node(int node); | ||
72 | |||
73 | static inline void release_thread(struct task_struct *task) | 71 | static inline void release_thread(struct task_struct *task) |
74 | { | 72 | { |
75 | } | 73 | } |
diff --git a/arch/um/kernel/Makefile b/arch/um/kernel/Makefile index 65a1c3d690ea..babe21826e3e 100644 --- a/arch/um/kernel/Makefile +++ b/arch/um/kernel/Makefile | |||
@@ -10,7 +10,7 @@ CPPFLAGS_vmlinux.lds := -DSTART=$(LDS_START) \ | |||
10 | extra-y := vmlinux.lds | 10 | extra-y := vmlinux.lds |
11 | clean-files := | 11 | clean-files := |
12 | 12 | ||
13 | obj-y = config.o exec.o exitcode.o init_task.o irq.o ksyms.o mem.o \ | 13 | obj-y = config.o exec.o exitcode.o irq.o ksyms.o mem.o \ |
14 | physmem.o process.o ptrace.o reboot.o sigio.o \ | 14 | physmem.o process.o ptrace.o reboot.o sigio.o \ |
15 | signal.o smp.o syscall.o sysrq.o time.o tlb.o trap.o \ | 15 | signal.o smp.o syscall.o sysrq.o time.o tlb.o trap.o \ |
16 | um_arch.o umid.o skas/ | 16 | um_arch.o umid.o skas/ |
diff --git a/arch/um/kernel/init_task.c b/arch/um/kernel/init_task.c deleted file mode 100644 index ddc9698b66ed..000000000000 --- a/arch/um/kernel/init_task.c +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,intel.linux}.com) | ||
3 | * Licensed under the GPL | ||
4 | */ | ||
5 | |||
6 | #include "linux/sched.h" | ||
7 | #include "linux/init_task.h" | ||
8 | #include "linux/fs.h" | ||
9 | #include "linux/module.h" | ||
10 | #include "linux/mqueue.h" | ||
11 | #include "asm/uaccess.h" | ||
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 task structure. | ||
17 | * | ||
18 | * All other task structs will be allocated on slabs in fork.c | ||
19 | */ | ||
20 | |||
21 | struct task_struct init_task = INIT_TASK(init_task); | ||
22 | |||
23 | EXPORT_SYMBOL(init_task); | ||
24 | |||
25 | /* | ||
26 | * Initial thread structure. | ||
27 | * | ||
28 | * We need to make sure that this is aligned due to the | ||
29 | * way process stacks are handled. This is done by having a special | ||
30 | * "init_task" linker map entry.. | ||
31 | */ | ||
32 | |||
33 | union thread_union init_thread_union __init_task_data = | ||
34 | { INIT_THREAD_INFO(init_task) }; | ||
35 | |||
36 | union thread_union cpu0_irqstack | ||
37 | __attribute__((__section__(".data..init_irqstack"))) = | ||
38 | { INIT_THREAD_INFO(init_task) }; | ||
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c index 6f588e160fb0..a02b7e9e6b94 100644 --- a/arch/um/kernel/smp.c +++ b/arch/um/kernel/smp.c | |||
@@ -140,7 +140,7 @@ void smp_prepare_boot_cpu(void) | |||
140 | set_cpu_online(smp_processor_id(), true); | 140 | set_cpu_online(smp_processor_id(), true); |
141 | } | 141 | } |
142 | 142 | ||
143 | int __cpu_up(unsigned int cpu) | 143 | int __cpu_up(unsigned int cpu, struct task_struct *tidle) |
144 | { | 144 | { |
145 | cpu_set(cpu, smp_commenced_mask); | 145 | cpu_set(cpu, smp_commenced_mask); |
146 | while (!cpu_online(cpu)) | 146 | while (!cpu_online(cpu)) |
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c index ba00eae45aad..4db8770906ca 100644 --- a/arch/um/kernel/um_arch.c +++ b/arch/um/kernel/um_arch.c | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/seq_file.h> | 10 | #include <linux/seq_file.h> |
11 | #include <linux/string.h> | 11 | #include <linux/string.h> |
12 | #include <linux/utsname.h> | 12 | #include <linux/utsname.h> |
13 | #include <linux/sched.h> | ||
13 | #include <asm/pgtable.h> | 14 | #include <asm/pgtable.h> |
14 | #include <asm/processor.h> | 15 | #include <asm/processor.h> |
15 | #include <asm/setup.h> | 16 | #include <asm/setup.h> |
@@ -47,6 +48,10 @@ struct cpuinfo_um boot_cpu_data = { | |||
47 | .ipi_pipe = { -1, -1 } | 48 | .ipi_pipe = { -1, -1 } |
48 | }; | 49 | }; |
49 | 50 | ||
51 | union thread_union cpu0_irqstack | ||
52 | __attribute__((__section__(".data..init_irqstack"))) = | ||
53 | { INIT_THREAD_INFO(init_task) }; | ||
54 | |||
50 | unsigned long thread_saved_pc(struct task_struct *task) | 55 | unsigned long thread_saved_pc(struct task_struct *task) |
51 | { | 56 | { |
52 | /* FIXME: Need to look up userspace_pid by cpu */ | 57 | /* FIXME: Need to look up userspace_pid by cpu */ |