Hi,
I have problems linking Linux SPARC32 when SMP is enabled:
LD vmlinux
SYSMAP System.map
SYSMAP .tmp_System.map
BTFIX arch/sparc/boot/btfix.S
AS arch/sparc/boot/btfix.o
LD arch/sparc/boot/image
net/built-in.o: In function `net_rps_action_and_irq_enable':
/home/daniel/linux/linux/linux-2.6/net/core/dev.c:3337: undefined
reference to `__smp_call_function_single'
make[1]: *** [arch/sparc/boot/image] Error 1
make: *** [zImage] Error 2
It seems that __smp_call_function_single() is missing in smp_32.h for
SPARC32, for SPARC64 the function is declared in linux/smp.h and
kernel/smp.c by defining USE_GENERIC_SMP_HELPERS in arch/sparc/Kconfig.
__smp_call_function_single() was introduced in
e77c8e83dd587f2616d7ff20d23a897891e6e20d:
+#ifdef CONFIG_SMP
+/*
+ * net_rps_action sends any pending IPI's for rps. This is only called from
+ * softirq and interrupts must be enabled.
+ */
+static void net_rps_action(cpumask_t *mask)
+{
+ int cpu;
+
+ /* Send pending IPI's to kick RPS processing on remote cpus. */
+ for_each_cpu_mask_nr(cpu, *mask) {
+ struct softnet_data *queue = &per_cpu(softnet_data, cpu);
+ if (cpu_online(cpu))
+ __smp_call_function_single(cpu, &queue->csd, 0);
+ }
+ cpus_clear(*mask);
+}
+#endif
Any ideas what I might have done wrong?
Thanks,
Daniel Hellstrom
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html