On Tue, Apr 15, 2014 at 11:13:17AM +0200, Johan Hovold wrote: > On Tue, Apr 15, 2014 at 10:35:19AM +0200, Oliver Neukum wrote: > > On Mon, 2014-04-14 at 21:58 +0200, Johan Hovold wrote: > > > > > Fix this by implementing a delayed-write queue using urb anchors and > > > making sure to discard the queue properly at shutdown. > > > > Looks very good, with one exception: acm_tty_close() must > > synchronously resume the device so that the anchor is emptied > > before ASYNCB is cleared. > > That isn't necessary as the device is already about to be resumed and > the initialised flag will not be cleared until chars_in_buffer() returns > 0 or closing wait times out. > > In the first case, the queue has been emptied as the urbs are submitted > at resume(), and in the second case the queue is discarded at > shutdown(). Turns out that the usb_wwan (and thus ipw, option, and qcserial) and sierra usb-serial drivers also fail to get runtime-suspend right. The first one leaks urbs and the second does synchronous resume and submits urbs during shutdown. I'll fix it up. Johan -- 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