> I'm not getting lockups, but I am seeing this problem. It looks like the 
> device/driver "rescan" is dying somewhere.

This patch addressed at least some of those problems for me.
The driver model code was using the wrong calling convention
when probing.

- Dave
--- ./drivers-dist//base/core.c Sun Oct 13 04:29:37 2002
+++ ./drivers//base/core.c      Sun Oct 13 13:48:51 2002
@@ -55,5 +55,5 @@
 static int found_match(struct device * dev, struct device_driver * drv)
 {
-       int error = 0;
+       int error;
 
        if (!(error = probe(dev,get_driver(drv)))) {
@@ -65,5 +65,5 @@
                dev->driver = NULL;
        }
-       return error;
+       return error == 0;
 }
 
@@ -76,5 +76,7 @@
  * It calls the bus's match callback to check if the driver supports
  * the device. If so, it calls the found_match() function above to 
- * take care of all the details.
+ * try taking care of all the details.
+ *
+ * Returns zero (to continue the scan) if the driver didn't attach.
  */
 static int do_device_attach(struct device_driver * drv, void * data)

Reply via email to