Hm, can you apply this patch with -R and see if it fixes your problem?
Or this one _without_ "-R".
--- 1.44/drivers/usb/host/uhci-hcd.c Fri Jul 18 06:22:32 2003 +++ edited/drivers/usb/host/uhci-hcd.c Fri Sep 19 12:23:54 2003 @@ -1960,8 +1960,9 @@ { unsigned int io_addr = uhci->io_addr; - /* Global reset for 50ms */ + /* Global reset for 50ms, and don't interrupt me */ uhci->state = UHCI_RESET; + outw(0, io_addr + USBINTR); outw(USBCMD_GRESET, io_addr + USBCMD); set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout((HZ*50+999) / 1000); @@ -2187,6 +2188,7 @@ /* Maybe kick BIOS off this hardware. Then reset, so we won't get * interrupts from any previous setup. */ + outw(0, uhci->io_addr + USBINTR); pci_write_config_word(hcd->pdev, USBLEGSUP, USBLEGSUP_DEFAULT); reset_hc(uhci); return 0;