]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.20.2/kexec-fix-config_smp-n-compilation-v2.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.20.2 / kexec-fix-config_smp-n-compilation-v2.patch
1 From stable-bounces@linux.kernel.org Mon Feb 5 16:22:39 2007
2 From: Magnus Damm <magnus@valinux.co.jp>
3 Date: Mon, 05 Feb 2007 16:20:09 -0800
4 Subject: kexec: Fix CONFIG_SMP=n compilation V2 (ia64)
5 To: tony.luck@intel.com
6 Cc: linux-ia64@vger.kernel.org, jlan@sgi.com, magnus@valinux.co.jp, horms@verge.net.au, akpm@linux-foundation.org, stable@kernel.org
7 Message-ID: <200702060021.l160LC1X004222@shell0.pdx.osdl.net>
8
9
10 From: Magnus Damm <magnus@valinux.co.jp>
11
12 Kexec support for 2.6.20 on ia64 does not build properly using a config
13 made up by CONFIG_SMP=n and CONFIG_HOTPLUG_CPU=n:
14
15 CC arch/ia64/kernel/machine_kexec.o
16 arch/ia64/kernel/machine_kexec.c: In function `machine_shutdown':
17 arch/ia64/kernel/machine_kexec.c:77: warning: implicit declaration of function `cpu_down'
18 AS arch/ia64/kernel/relocate_kernel.o
19 CC arch/ia64/kernel/crash.o
20 arch/ia64/kernel/crash.c: In function `kdump_cpu_freeze':
21 arch/ia64/kernel/crash.c:139: warning: implicit declaration of function `ia64_jump_to_sal'
22 arch/ia64/kernel/crash.c:139: error: `sal_boot_rendez_state' undeclared (first use in this function)
23 arch/ia64/kernel/crash.c:139: error: (Each undeclared identifier is reported only once
24 arch/ia64/kernel/crash.c:139: error: for each function it appears in.)
25 arch/ia64/kernel/crash.c: At top level:
26 arch/ia64/kernel/crash.c:84: warning: 'kdump_wait_cpu_freeze' defined but not used
27 make[1]: *** [arch/ia64/kernel/crash.o] Error 1
28 make: *** [arch/ia64/kernel] Error 2
29
30 Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
31 Acked-by: Simon Horman <horms@verge.net.au>
32 Acked-by: Jay Lan <jlan@sgi.com>
33 Cc: Tony Luck <tony.luck@intel.com>
34 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
35 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
36
37 ---
38 arch/ia64/kernel/crash.c | 11 +++++++----
39 arch/ia64/kernel/machine_kexec.c | 2 ++
40 2 files changed, 9 insertions(+), 4 deletions(-)
41
42 --- linux-2.6.20.1.orig/arch/ia64/kernel/crash.c
43 +++ linux-2.6.20.1/arch/ia64/kernel/crash.c
44 @@ -79,6 +79,7 @@ crash_save_this_cpu()
45 final_note(buf);
46 }
47
48 +#ifdef CONFIG_SMP
49 static int
50 kdump_wait_cpu_freeze(void)
51 {
52 @@ -91,6 +92,7 @@ kdump_wait_cpu_freeze(void)
53 }
54 return 1;
55 }
56 +#endif
57
58 void
59 machine_crash_shutdown(struct pt_regs *pt)
60 @@ -132,11 +134,12 @@ kdump_cpu_freeze(struct unw_frame_info *
61 atomic_inc(&kdump_cpu_freezed);
62 kdump_status[cpuid] = 1;
63 mb();
64 - if (cpuid == 0) {
65 - for (;;)
66 - cpu_relax();
67 - } else
68 +#ifdef CONFIG_HOTPLUG_CPU
69 + if (cpuid != 0)
70 ia64_jump_to_sal(&sal_boot_rendez_state[cpuid]);
71 +#endif
72 + for (;;)
73 + cpu_relax();
74 }
75
76 static int
77 --- linux-2.6.20.1.orig/arch/ia64/kernel/machine_kexec.c
78 +++ linux-2.6.20.1/arch/ia64/kernel/machine_kexec.c
79 @@ -70,12 +70,14 @@ void machine_kexec_cleanup(struct kimage
80
81 void machine_shutdown(void)
82 {
83 +#ifdef CONFIG_HOTPLUG_CPU
84 int cpu;
85
86 for_each_online_cpu(cpu) {
87 if (cpu != smp_processor_id())
88 cpu_down(cpu);
89 }
90 +#endif
91 kexec_disable_iosapic();
92 }
93