md_setup() in linux-2.4.1/drivers/md.c references name_to_kdev_t.
Since name_to_kdev_t is not exported from the kenrel, this causes an
undefined symbol problem when md is built as a module. However,
md_setup is not used when md is a module. So, the correct fix
is to make sure that md_setup() is compiled only when md.c
is not a module. Here is the patch.
--
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
[EMAIL PROTECTED] \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
--- linux-2.4.1/drivers/md/md.c Mon Jan 29 13:16:00 2001
+++ linux/drivers/md/md.c Wed Jan 31 20:21:36 2001
@@ -3665,6 +3666,7 @@
* elements in device-list are read by name_to_kdev_t so can be
* a hex number or something like /dev/hda1 /dev/sdb
*/
+#ifndef MODULE
extern kdev_t name_to_kdev_t(char *line) md__init;
static int md__init md_setup(char *str)
{
@@ -3740,6 +3742,7 @@
md_setup_args.device_set[minor] = 1;
return 1;
}
+#endif /* !MODULE */
void md__init md_setup_drive(void)
{