Add linux-usb in loop. Hello, When reload the xhci_hcd.ko continuously as following, we will see many error messages, even HW hang! (almost < 300 times; if no sleep between rmmod and modprobe driver, the value should be smaller). #> rmmod xhci_hcd; modprobe xhci_hcd By the way, our kernel version is 2.6.32.358 (v3.15-rc2 also tested, similar situation), and the machine’s PCH is Intel Lynx-Point. After tracing the source code, we found: In kernel source: linux-2.6.32-358.el6.x86_64/drivers/usb/host/xhci.c 54 int handshake(struct xhci_hcd *xhci, void __iomem *ptr, 55 u32 mask, u32 done, int usec) 56 { 57 u32 result; 58 59 do { 60 result = xhci_readl(xhci, ptr); 61 if (result == ~(u32)0) /* card removed */ 62 return -ENODEV; 63 result &= mask; 64 if (result == done) 65 return 0; 66 udelay(10); //udelay(1); 67 usec -= 10; //usec--; 68 } while (usec > 0); 69 return -ETIMEDOUT; 70 } In this function, it will be called for some USB commands to issue out, and trying to read HW register until it matching “done” value, At Lynx-Point, we wonder this will make HW unstable because of frequently access, so we reduce the access rate, Old: udelay(1) & usec -- New: udelay(10) & usec -= 10 = = > After patch, Reload xhci_hcd driver for 1000 times, no problem, so the patch fix the problem for us. Look forward to your response. Thanks! Best Regards, Lin Du -- 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