Comment 44 for bug 522998

Revision history for this message
Martin Spacek (mspacek) wrote :

As mentioned by Jerone Young in comment #28, I've noticed that even with SUSPEND_MODULES="xhci-hcd" in unload_modules, once in a while, after a few suspend/resume cycles, My Thinkpad W510 maverick system will hang while trying to suspend, and has to be hard powered off. This is bad.

I don't run any USB 3.0 devices, and since it seems the patch won't be backported to maverick or lucid, (or at least not for a while), I dove into unloading the xhci_hcd module altogether (not just during suspend), which I discovered is actually a very easy thing to do. It wasn't initially obvious to me, so here it is:

You can temporarily unload the module with "sudo modprobe -r xhci_hcd". So far, after testing for several suspend/resume cycles in a row, I haven't had any problems. However, the two blue NEC USB 3.0 ports on my machine no longer work, even for non-USB 3.0 devices like my mouse. That's OK, since I have another two Intel USB ports I can use, and suspend/resume reliability is way more important to me than having an extra 2 ports. In any case, you can always run "sudo modprobe xhci_hcd" to restore the module and the functioning of the two NEC ports.

Unloading the module with modprobe doesn't stick after a reboot. To make it stick, you need to blacklist xhci_hcd (as mentioned in an earlier post). To blacklist it, create the file:

/etc/modprobe.d/blacklist-xhci_hcd.conf

and add this line to it:

blacklist xhci_hcd

That's it. Note that since I no longer need it, my /etc/pm/config.d/unload_module file is now empty (in fact, I deleted it).

Hope this helps others until the patch becomes widespread.