aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc/machdep.h
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2006-04-23 10:42:04 +1000
committerPaul Mackerras <paulus@samba.org>2006-04-23 10:42:04 +1000
commitd0e15bed84db7a9b0ea85d2ad9707b5e6d2e38da (patch)
treeb27ecd617ae9113d083514b10ec27a649fd22c78 /include/asm-powerpc/machdep.h
parentMerge branch 'misc' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into merge (diff)
downloadlinux-dev-d0e15bed84db7a9b0ea85d2ad9707b5e6d2e38da.tar.xz
linux-dev-d0e15bed84db7a9b0ea85d2ad9707b5e6d2e38da.zip
powerpc: Fix define_machine so machine_is() works from modules
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>
Diffstat (limited to 'include/asm-powerpc/machdep.h')
-rw-r--r--include/asm-powerpc/machdep.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/asm-powerpc/machdep.h b/include/asm-powerpc/machdep.h
index 5ed847680754..0f9254c18914 100644
--- a/include/asm-powerpc/machdep.h
+++ b/include/asm-powerpc/machdep.h
@@ -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 \