Re: Regression: USB is nfg after suspend/resume(RAM) cycle on Intelchipset

From: Mark Lord
Date: Tue May 29 2007 - 14:29:17 EST


Mark Lord wrote:
Linus Torvalds wrote:
..
There's a different (but related to all the same freezer problems) patch by Rafael Wysocki <rjw@xxxxxxx>:

Re: [RFC][PATCH][EXPERIMENTAL] Make kernel threads nonfreezable by default
Message-Id: <200705291415.31970.rjw@xxxxxxx>

I'll hunt for Rafael's patch next.

Mmm.. Rafael's patch appears to be part of a large series of 15 patches,
and it's not totally clear to me how to test just that part of it,
so I think I'll leave things as is (working!) for now.

Here's my current fix:

-- snip --

Regarding commit 7ed92f1a149dddc3cb537ccd7441e98adac12c3e
"USB: make the autosuspend workqueue thread freezable":

This commit causes USB lockups on resume from Suspend-to-RAM
on my Core2duo notebook. Applying the patch below to revert
the commit fixes the problem for me in 2.6.22-rc3.

Signed-off-by: Mark Lord <mlord@xxxxxxxxx>
---
--- b0rken/drivers/usb/core/usb.c 2007-05-29 13:32:32.000000000 -0400
+++ linux/drivers/usb/core/usb.c 2007-05-29 13:27:10.000000000 -0400
@@ -205,11 +205,7 @@

static int ksuspend_usb_init(void)
{
- /* This workqueue is supposed to be both freezable and
- * singlethreaded. Its job doesn't justify running on more
- * than one CPU.
- */
- ksuspend_usb_wq = create_freezeable_workqueue("ksuspend_usbd");
+ ksuspend_usb_wq = create_singlethread_workqueue("ksuspend_usbd");
if (!ksuspend_usb_wq)
return -ENOMEM;
return 0;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/