[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#657612: linux-image-3.2.0-1-amd64: scheduling while atomic: swapper/2/0/0x10000100


Ben Hutchings wrote:

> This is probably some kind of driver bug; unfortunately there's no easy
> way to work out where it might be.

Maybe ums_realtek.  Could you try this patch?

Instructions for testing a patched kernel are at [1].
[1] http://kernel-handbook.alioth.debian.org/ch-common-tasks.html

commit b3ef051db763
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Thu Jan 26 12:29:42 2012 +0100

    USB: Realtek cr: fix autopm scheduling while atomic
    Reported-by: Francis Moreau <francis.moro@gmail.com>
    Reported-and-tested-by: Christian D <chrisudeussen@gmail.com>
    Reported-and-tested-by: Jimmy Dorff <jdorff@phy.duke.edu>
    Reported-and-tested-by: collura@ieee.org
    Cc: stable@vger.kernel.org # 3.2+
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
index 1f62723ef1a8..d32f72061c09 100644
--- a/drivers/usb/storage/realtek_cr.c
+++ b/drivers/usb/storage/realtek_cr.c
@@ -789,7 +789,7 @@ static void rts51x_suspend_timer_fn(unsigned long data)
 			rts51x_set_stat(chip, RTS51X_STAT_SS);
 			/* ignore mass storage interface's children */
 			pm_suspend_ignore_children(&us->pusb_intf->dev, true);
-			usb_autopm_put_interface(us->pusb_intf);
+			usb_autopm_put_interface_async(us->pusb_intf);
 			US_DEBUGP("%s: RTS51X_STAT_SS 01,"
 				"intf->pm_usage_cnt:%d, power.usage:%d\n",

Reply to: