From: Paul M. <le...@li...> - 2003-06-13 23:10:39
|
On Fri, Jun 13, 2003 at 03:54:09PM -0700, Paul van Gool wrote: > But when I try to load one of the resulting modules, I get: >=20 > # insmod snd > Using snd > insmod: unresolved symbol disable_dma > insmod: unresolved symbol release_dma_lock > insmod: unresolved symbol get_dma_residue > insmod: unresolved symbol set_dma_mode > insmod: unresolved symbol enable_dma > insmod: unresolved symbol set_dma_addr > insmod: unresolved symbol set_dma_count > insmod: unresolved symbol claim_dma_lock >=20 > Those functions are defined in arch/sh/kernel/dma.c. Any thoughts? >=20 Looks like these symbols aren't being exported for module use. Try this pat= ch, it should fix that up. Index: arch/sh/kernel/Makefile =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/Makefile,v retrieving revision 1.1.1.1.2.5 diff -u -r1.1.1.1.2.5 Makefile --- arch/sh/kernel/Makefile 8 May 2003 03:57:34 -0000 1.1.1.1.2.5 +++ arch/sh/kernel/Makefile 13 Jun 2003 23:08:18 -0000 @@ -12,7 +12,8 @@ =20 O_TARGET :=3D kernel.o =20 -export-objs :=3D io.o io_generic.o io_hd64461.o setup_hd64461.o sh_ksyms.o +export-objs :=3D io.o io_generic.o io_hd64461.o setup_hd64461.o sh_ksyms.o= \ + dma.o =20 obj-y :=3D process.o signal.o entry.o traps.o irq.o irq_ipr.o \ ptrace.o setup.o time.o sys_sh.o semaphore.o \ Index: arch/sh/kernel/dma.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/Attic/dma.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 dma.c --- arch/sh/kernel/dma.c 15 Oct 2001 20:44:47 -0000 1.1.1.1 +++ arch/sh/kernel/dma.c 13 Jun 2003 23:08:31 -0000 @@ -10,6 +10,7 @@ #include <linux/init.h> #include <linux/irq.h> #include <linux/interrupt.h> +#include <linux/module.h> =20 #include <asm/signal.h> #include <asm/dma.h> @@ -137,6 +138,25 @@ return 0; } =20 +static void __exit exit_dma(void) +{ +#ifdef CONFIG_CPU_SH4 + free_irq(DMAE_IRQ); +#endif +} + module_init(init_dma); +module_exit(exit_dma); + +MODULE_LICENSE("GPL"); + +EXPORT_SYMBOL(setup_dma); +EXPORT_SYMBOL(claim_dma_lock); +EXPORT_SYMBOL(release_dma_lock); +EXPORT_SYMBOL(enable_dma); +EXPORT_SYMBOL(disable_dma); +EXPORT_SYMBOL(set_dma_mode); +EXPORT_SYMBOL(set_dma_addr); +EXPORT_SYMBOL(set_dma_count); +EXPORT_SYMBOL(get_dma_residue); =20 -/**/ |