On Wed, 13 Jun 2012, [windows-1252] Hans Petter Selasky wrote: > Hi, > > � > > It appears that several USB drivers are not dropping the additional ref done by usb_anchor_urb() when URBs are anchored temporarily as a result of the device being suspended or temporarily offline. > > � > > I've done a quick grep and tried to fix the issues I could find. Unfortunately I cannot test all the hardware which this change affects. Linux USB developers of: > > � > > diff --git a/drivers/net/can/usb/ems_usb.c b/drivers/net/can/usb/ems_usb.c > diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c > diff --git a/drivers/net/wireless/ath/carl9170/usb.c b/drivers/net/wireless/ath/carl9170/usb.c > diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c > diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c > diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c > diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c > � > > Please test the following and also attached patch: The documentation you added to urb.c looks good. I can't test the new changes. But: > --- a/drivers/net/wireless/ath/carl9170/usb.c > +++ b/drivers/net/wireless/ath/carl9170/usb.c > @@ -153,6 +153,10 @@ static void carl9170_usb_submit_data_urb(struct ar9170 *ar) > ��� ��� �usb_anchor_urb(urb, &ar->tx_err); > ��� �} > � > +�� �/* release additonal ref done by previous anchor */ > +�� �usb_free_urb(urb); > + > +�� �/* release additonal ref done by current anchor */ > ��� �usb_free_urb(urb); Here and in lots of other places, you misspelled "additional". Alan Stern -- 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