On Mon, 25 Oct 2004, Gideon N. Guillen wrote: > Hello, > > This is a followup to the thread regarding my USB keyboard problem. > See the following link for the previous thread: > http://sourceforge.net/mailarchive/message.php?msg_id=9751633 > > Anyway, this time, I tried the latest kernel release (2.6.9) and also > use the .config file that came with Fedora 2.6.8. I've encountered the > same problems. > > Overview of the problem: > With the USB keyboard plugged-in, FC2 would just freeze on "Mounting > USB filesystem" on the init script/bootup. If I plug the keyboard when > the system is booted up, any attempt to plug-in other usb devices will > cause detection to fail. This is because, when the keybord is attached > on kernel >= 2.6.7, /proc/bus/usb/devices gets corrupted and/or > unreadable, this the freezing on the init script (the part where it's > grepping on /proc/bus/usb/devices) and the usb hot plug not working > because it's also readubg the same file.
Please try applying the patch below, and then post the dmesg output you get when plugging the keyboard in after bootup. Alan Stern ===== drivers/usb/input/hid-core.c 1.131 vs edited ===== --- 1.131/drivers/usb/input/hid-core.c 2004-10-01 15:12:41 -04:00 +++ edited/drivers/usb/input/hid-core.c 2004-10-25 12:12:20 -04:00 @@ -1146,6 +1146,7 @@ warn("output irq status %d received", urb->status); } +printk(KERN_INFO "%s: %d\n", __FUNCTION__, urb->status); spin_lock_irqsave(&hid->outlock, flags); hid->outtail = (hid->outtail + 1) & (HID_OUTPUT_FIFO_SIZE - 1); @@ -1159,6 +1160,7 @@ return; } +printk(KERN_INFO "clear HID_OUT_RUNNING\n"); clear_bit(HID_OUT_RUNNING, &hid->iofl); spin_unlock_irqrestore(&hid->outlock, flags); wake_up(&hid->wait); @@ -1173,6 +1175,7 @@ struct hid_device *hid = urb->context; unsigned long flags; +printk(KERN_INFO "%s: %d\n", __FUNCTION__, urb->status); spin_lock_irqsave(&hid->ctrllock, flags); switch (urb->status) { @@ -1199,6 +1202,7 @@ return; } +printk(KERN_INFO "clear HID_CTRL_RUNNING\n"); clear_bit(HID_CTRL_RUNNING, &hid->iofl); spin_unlock_irqrestore(&hid->ctrllock, flags); wake_up(&hid->wait); @@ -1269,6 +1273,7 @@ set_current_state(TASK_RUNNING); remove_wait_queue(&hid->wait, &wait); +printk(KERN_INFO "%s: %d\n", __FUNCTION__, timeout); if (!timeout) { dbg("timeout waiting for ctrl or out queue to clear"); return -1; @@ -1353,9 +1358,13 @@ while (ret) { err |= ret; if (test_bit(HID_CTRL_RUNNING, &hid->iofl)) +{printk(KERN_INFO "%s: kill ctrl urb\n", __FUNCTION__); usb_kill_urb(hid->urbctrl); +printk(KERN_INFO "kill done\n");} if (test_bit(HID_OUT_RUNNING, &hid->iofl)) +{printk(KERN_INFO "%s: kill intr-out urb\n", __FUNCTION__); usb_kill_urb(hid->urbout); +printk(KERN_INFO "kill done\n");} ret = hid_wait_io(hid); } ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel