Building the IDE driver as module fails for a couple of reasons:
1) ide-probe.c uses the ideprobe_init routine before it is declared.
--- drivers/block/ide-probe.c.orig Fri Dec 19 17:49:26 1997
+++ drivers/block/ide-probe.c Fri Dec 19 17:50:05 1997
@@ -674,6 +674,10 @@
return hwif->present;
}
+
+int ideprobe_init(void);
+
+
static ide_module_t ideprobe_module = {
IDE_PROBE_MODULE,
ideprobe_init,
2) ide.c needs the max_readahead symbol, but this isn't exported.
--- kernel/ksyms.c.orig Fri Dec 19 17:51:34 1997
+++ kernel/ksyms.c Fri Dec 19 17:52:24 1997
@@ -241,6 +241,7 @@
EXPORT_SYMBOL(efind_buffer);
EXPORT_SYMBOL(init_buffer);
EXPORT_SYMBOL(max_sectors);
+EXPORT_SYMBOL(max_readahead);
/* tty routines */
EXPORT_SYMBOL(tty_hangup);
3) The ide.o and ide-proc.o modules depend on each other; you cannot
load one before the other (catch-22). One solution is to link
these together statically with "ld -r -o ide_mod.o ide.o ide-proc.o"
and then install the ide_mod.o file instead of the two original
modules. Is that how it should be done ? The thing loads and works,
except that /proc/ide is empty.
-- Henrik Storner http://www.image.dk/~storner/ "The POP3 server service depends on the SMTP server service, which failed to start because of the following error: The operation completed successfully." -Windows NT Server v3.51