Patch to make 2.1.48's paralell port modules work with kerneld

Alain.Knaff@poboxes.com ("Alain.Knaff@poboxes.com")
Tue, 05 Aug 1997 22:43:11 +0200


The new parport code involves a hardware specific parport_xx modules,
where xx names the platform. The lp module needs the presence of this
module, although it is not "dependant" on it according to depmod.
Because of this, kerneld can no longer automatically insert all
parport modules.

The following patch fixes this problem by adding a request_module
call to the the function used to enumerate all physical paralell
ports. A similar method has been used for the SCSI subsystem, which
uses a similar module structure as the new paralell port code ( both
low level host adapter drivers, and high level SCSI device drivers are
inserted on top of the generic middle lever SCSI modules).

To use the, add the following line to your /etc/conf.modules:

alias parport_lowlevel parport_pc

Regards,

Alain

diff -ur 2.1.48/linux/drivers/misc/parport_share.c linux/drivers/misc/parport_share.c
--- 2.1.48/linux/drivers/misc/parport_share.c Tue Aug 5 22:02:07 1997
+++ linux/drivers/misc/parport_share.c Tue Aug 5 22:17:05 1997
@@ -19,6 +19,11 @@
#include <linux/kernel.h>
#include <linux/malloc.h>

+#ifdef CONFIG_KERNELD
+#include <linux/kerneld.h>
+#endif
+
+
#undef PARPORT_PARANOID

static struct parport *portlist = NULL, *portlist_tail = NULL;
@@ -27,6 +32,10 @@
/* Return a list of all the ports we know about. */
struct parport *parport_enumerate(void)
{
+#ifdef CONFIG_KERNELD
+ if (portlist == NULL)
+ request_module("parport_lowlevel");
+#endif
return portlist;
}