Re: 2.6.21-rc6-mm1 USB related boot hang

Jiri Kosina
2007-04-12T18:33:47Z

On Thu, 12 Apr 2007, Helge Hafting wrote:

> The last messages (handwritten, somewhat shortened)
> calling hid_init+0x0/0x10()
> returned 0
> ran for 0 msec
> calling hid_init+0x0/0x50()
> usbcore registered new interface driver hiddev
> and then it hangs completely.

OK, so it hangs somewhere nearby usbhid's hid_init(), and the
usb_register() has been already invoked. Could you please apply the
superstupid patch below and send me the output up to the point it hangs? I
am curious to know whether it hangs somewhere inside usb_register(), or
elsewhere.

Thanks.

diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 1ddca31..d930f62 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -1550,15 +1550,22 @@ static int __init hid_init(void)
retval = hiddev_init();
if (retval)
goto hiddev_init_fail;
+ printk(KERN_DEBUG "hid_init: before usb_register()\n");
retval = usb_register(&hid_driver);
+ printk(KERN_DEBUG "hid_init: after usb_register(), retuned %d\n", retval);
if (retval)
goto usb_register_fail;
info(DRIVER_VERSION ":" DRIVER_DESC);

+ printk(KERN_DEBUG "hid_init: returning 0\n");
+ dump_stack();
return 0;
usb_register_fail:
+ printk(KERN_DEBUG "hid_init: calling hiddev_exit()\n");
hiddev_exit();
hiddev_init_fail:
+ printk(KERN_DEBUG "hid_init: returning %d\n", retval);
+ dump_stack();
return retval;
}