2.1.25: Q re modular SCSI CD

Gerd Knorr (kraxel@cs.tu-berlin.de)
Wed, 5 Feb 1997 10:32:11 +0100


In article <5d85dh$hen$1@duncodin.demon.co.uk>, you wrote:
>I have SCSI CD compiled as a module, however the following symbols are
>reported as not defined on trying to insert the module :-
>
>sr_mod.o: unresolved symbol register_cdrom
>sr_mod.o: unresolved symbol unregister_cdrom
>sr_mod.o: unresolved symbol cdrom_fops
>
>Looking at kernel/ksyms.c the following #if appears to prevent these being
>added :-
>
>
>#if defined(CONFIG_BLK_DEV_IDECD) || \
> defined(CONFIG_BLK_DEV_SR) || \
> defined(CONFIG_CM206)
>EXPORT_SYMBOL(register_cdrom);
>EXPORT_SYMBOL(unregister_cdrom);
>EXPORT_SYMBOL(cdrom_fops);
>#endif

This is ok. the scsi cdrom driver uses the generic cdrom driver (since
2.1.10 I think). These three symbols belong to the generic cdrom driver,
And the driver gets compiled into only if one of the three cdrom drivers
which support it are compiled in too.

Else you shoult get a cdrom.o module, and sr_mod should work fine after
inserting this module. depmod shoult take care about this. Let me guess:
You have the famous 2.1.25-depmod-Oops ??

Gerd

BTW: Is anywhere documented how this EXPORT_SYMBOL() works? Could we get
rid of this ugly #if construct by moving these three lines to
drivers/cdrom/cdrom.c (which is the generic cdrom driver) ?

-- 
l-w--w--w-   1 kraxel   users          42 Jan  1 19:70 .signature <- /dev/null