Re: 2.6.18-rc1-mm1 fails on amd64 (smp_call_function_single)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 09 July 2006 23:03, Andrew Morton wrote:
> On Sun, 9 Jul 2006 22:39:48 +0200
> "Rafael J. Wysocki" <[email protected]> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux