lkml.org 
[lkml]   [2000]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectUSB init order dependencies.
Date
Personally, I think this fix is less ugly than any of the alternatives I've 
seen so far.

It removes the dependency on init order completely, by statically putting
the hub driver into the usb_driver_list at compile time.

Leave the link ordering stuff for 2.5.

Index: drivers/usb//hub.c
===================================================================
RCS file: /inst/cvs/linux/drivers/usb/hub.c,v
retrieving revision 1.2.2.38
diff -u -r1.2.2.38 hub.c
--- drivers/usb//hub.c 2000/10/12 16:50:36 1.2.2.38
+++ drivers/usb//hub.c 2000/10/31 17:50:58
@@ -759,11 +759,13 @@
return 0;
}

-static struct usb_driver hub_driver = {
+struct usb_driver hub_driver = {
name: "hub",
probe: hub_probe,
ioctl: hub_ioctl,
- disconnect: hub_disconnect
+ disconnect: hub_disconnect,
+ serialize: __MUTEX_INITIALIZER(hub_driver.serialize),
+ driver_list: LIST_HEAD_INIT(usb_driver_list)
};

/*
@@ -772,11 +774,6 @@
int usb_hub_init(void)
{
int pid;
-
- if (usb_register(&hub_driver) < 0) {
- err("Unable to register USB hub driver");
- return -1;
- }

pid = kernel_thread(usb_hub_thread, NULL,
CLONE_FS | CLONE_FILES | CLONE_SIGHAND);
Index: drivers/usb//usb.c
===================================================================
RCS file: /inst/cvs/linux/drivers/usb/usb.c,v
retrieving revision 1.2.2.52
diff -u -r1.2.2.52 usb.c
--- drivers/usb//usb.c 2000/10/04 12:29:27 1.2.2.52
+++ drivers/usb//usb.c 2000/10/31 17:50:58
@@ -56,8 +56,14 @@

/*
* We have a per-interface "registered driver" list.
+ * We link the USB hub driver into the list statically at compile
+ * time, to prevent ugly dependencies on the order in which the
+ * init routines are called.
*/
-LIST_HEAD(usb_driver_list);
+
+extern struct usb_driver hub_driver;
+
+struct list_head usb_driver_list = LIST_HEAD_INIT(hub_driver.driver_list);
LIST_HEAD(usb_bus_list);

static struct usb_busmap busmap;

--
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:45    [W:0.019 / U:5.780 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site