Re: USB warning on cdc-acm device close

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

 



On Tue, Jul 28, 2009 at 8:27 PM, Alan Stern<stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 23 Jul 2009, Manuel Lauss wrote:
>
>> However I think this is entirely my fault:  In an effort to reduce idle wakeups
>> I disabled the EHCI IO watchdog (which reduced idle wakeups by ~10/s).
>> Enabling it again gets rid of the WARN_ON output without any patching.
>>
>> On the other hand, 2.6.30 even with the IO watchdog disabled doesn't
>> show the error.
>
> Did you disable only the I/O watchdog, or did you also disable the IAA
> watchdog?

I/O Watchdog. With this:
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index 7d03549..047b7c0 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -140,7 +139,9 @@ timer_action(struct ehci_hcd *ehci, enum
ehci_timer_action action)
 			t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1;
 			break;
 		}
+#ifndef CONFIG_USB_EHCI_NO_IO_WATCHDOG
 		mod_timer(&ehci->watchdog, t + jiffies);
+#endif
 	}
 }



> Has there been a chance to run the new test I asked about?

Not yet, hardware is unique and currently occupied by other people.


> The fact that the ACM device doesn't work when you plug it back in
> after reloading ehci-hcd suggests that the khubd thread has gotten
> stuck waiting for womething.  You can confirm this by getting a stack
> trace (Alt-SysRq-T) after removing ehci-hcd.  I would guess that khubd
> is waiting for the URB that is still sitting in the DMA pools.

I'll get you a new trace as soon as possible.

Thanks!
        Manuel Lauss
--
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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux