On Tue July 7 2009, Alan Stern wrote: > On Tue, 7 Jul 2009, Oliver Neukum wrote: > > > Am Dienstag, 7. Juli 2009 11:13:01 schrieb Jiri Kosina: > > > [ adding linux-usb to CC ] > > > > > > On Sun, 5 Jul 2009, Michael S. Zick wrote: > > > > Anyone with suggestions about this one? > > > > Looks like we should test for presence before we switch off > > autosuspend for khubd. Please test this diagnostic patch if this is > > repeatable. > > That patch won't fix the problem. This issue is not that hdev is NULL; > the problem is that the hub driver isn't bound to hdev and as a result, > the hdev_to_hub routine fails. > > This patch may work better. > Got it. Anything that gives me something other than a dead machine with a glowing power-on light is forward progress. Will give this patch a try today and report back. At the moment am running the machine without either USB driver loaded. Just to see if they are contributing to the problems. Mike > Alan Stern > > > Index: usb-2.6/drivers/usb/core/hub.c > =================================================================== > --- usb-2.6.orig/drivers/usb/core/hub.c > +++ usb-2.6/drivers/usb/core/hub.c > @@ -163,8 +163,10 @@ static inline char *portspeed(int portst > } > > /* Note that hdev or one of its children must be locked! */ > -static inline struct usb_hub *hdev_to_hub(struct usb_device *hdev) > +static struct usb_hub *hdev_to_hub(struct usb_device *hdev) > { > + if (!hdev || !hdev->actconfig) > + return NULL; > return usb_get_intfdata(hdev->actconfig->interface[0]); > } > > @@ -385,8 +387,10 @@ static void kick_khubd(struct usb_hub *h > > void usb_kick_khubd(struct usb_device *hdev) > { > - /* FIXME: What if hdev isn't bound to the hub driver? */ > - kick_khubd(hdev_to_hub(hdev)); > + struct usb_hub *hub = hdev_to_hub(hdev); > + > + if (hub) > + kick_khubd(hub); > } > > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html