Messages in this thread | | | Date | Sun, 9 Jul 2006 15:44:45 -0700 | From | Andrew Morton <> | Subject | Re: 2.6.18-rc1-mm1 fails on amd64 (smp_call_function_single) |
| |
On Mon, 10 Jul 2006 00:37:14 +0200 "Rafael J. Wysocki" <rjw@sisk.pl> wrote:
> On Sunday 09 July 2006 23:03, Andrew Morton wrote: > > On Sun, 9 Jul 2006 22:39:48 +0200 > > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > > > On Sunday 09 July 2006 13:49, Gregoire Favre wrote: > > > > Hello, > > > > > > > > can't compil it : > > > > > > > > CHK include/linux/compile.h > > > > UPD include/linux/compile.h > > > > CC init/version.o > > > > LD init/built-in.o > > > > LD .tmp_vmlinux1 > > > > arch/x86_64/kernel/built-in.o: In function `vsyscall_set_cpu': > > > > (.init.text+0x1e87): undefined reference to `smp_call_function_single' > > > > make: *** [.tmp_vmlinux1] Error 1 > > > > > > This is because of x86_64-mm-getcpu-vsyscall.patch which breaks > > > compilation without SMP and is not obviously fixable. > > > > Is it not as simple as adding a !SMP implementation of > > smp_call_function_single(), which just calls the thing? > > Like this: > > arch/x86_64/kernel/vsyscall.c | 6 ++++++ > 1 files changed, 6 insertions(+) > > Index: linux-2.6.18-rc1-mm1/arch/x86_64/kernel/vsyscall.c > =================================================================== > --- linux-2.6.18-rc1-mm1.orig/arch/x86_64/kernel/vsyscall.c > +++ linux-2.6.18-rc1-mm1/arch/x86_64/kernel/vsyscall.c > @@ -241,10 +241,12 @@ static ctl_table kernel_root_table2[] = > > #endif > > +#ifdef CONFIG_SMP > static void __cpuinit write_rdtscp_cb(void *info) > { > write_rdtscp_aux((unsigned long)info); > } > +#endif > > void __cpuinit vsyscall_set_cpu(int cpu) > { > @@ -254,10 +256,14 @@ void __cpuinit vsyscall_set_cpu(int cpu) > node = cpu_to_node[cpu]; > #endif > if (cpu_has(&cpu_data[cpu], X86_FEATURE_RDTSCP)) { > +#ifdef CONFIG_SMP > /* the notifier is unfortunately not executed on the > target CPU */ > void *info = (void *)((node << 12) | cpu); > smp_call_function_single(cpu, write_rdtscp_cb, info, 0, 1); > +#else > + write_rdtscp_aux(0); > +#endif > } > > /* Store cpu number in limit so that it can be loaded quickly
I meant, in smp.h:
#else /* CONFIG_SMP */ #define smp_call_function_single(cpu, fn, arg, x, y) fn(arg) #endif /* CONFIG_SMP */
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |