powerpc: Fix define_machine so machine_is() works from modules
authorPaul Mackerras <paulus@samba.org>
Sun, 23 Apr 2006 00:42:04 +0000 (10:42 +1000)
committerPaul Mackerras <paulus@samba.org>
Sun, 23 Apr 2006 00:42:04 +0000 (10:42 +1000)
machine_is() was always returning 0 when used in a module, because
we weren't exporting the machine definitions.  This was why sound
wasn't working on powermacs when CONFIG_SND_POWERMAC=m.  Original
fix from Ben Herrenschmidt, further fixed by me.

Signed-off-by: Paul Mackerras <paulus@samba.org>
include/asm-powerpc/machdep.h

index 5ed8476..0f9254c 100644 (file)
@@ -253,7 +253,11 @@ extern struct machdep_calls *machine_id;
 
 #define __machine_desc __attribute__ ((__section__ (".machine.desc")))
 
-#define define_machine(name) struct machdep_calls mach_##name __machine_desc =
+#define define_machine(name)                                   \
+       extern struct machdep_calls mach_##name;                \
+       EXPORT_SYMBOL(mach_##name);                             \
+       struct machdep_calls mach_##name __machine_desc =
+
 #define machine_is(name) \
        ({ \
                extern struct machdep_calls mach_##name \