Message ID | 1315071353-14978-1-git-send-email-consul.kautuk@gmail.com |
---|---|
State | Rejected, archived |
Delegated to: | David Miller |
Headers | show |
On Sat, 3 Sep 2011, Kautuk Consul wrote: > usb_hcd_giveback_urb frees the urb irrespective of any return > value from the urb->complete function. It calls usb_put_urb which > is #defined to usb_free_urb, so maybe we shouldn't be freeing this > from rx_complete. usb_free_urb() doesn't free its argument unless the refcount drops to 0. The refcount is incremented during usb_hcd_submit_urb(), and the decrement during usb_hcd_giveback_urb() merely undoes this increment. > But I can't get around the fact that this has not been detected as a problem > till now, so I could be quite wrong about this. :) Quite probably. :-) Alan Stern -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index ce395fe..6df8094 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -491,7 +491,6 @@ block: rx_submit (dev, urb, GFP_ATOMIC); return; } - usb_free_urb (urb); } netif_dbg(dev, rx_err, dev->net, "no read resubmitted\n"); }
usb_hcd_giveback_urb frees the urb irrespective of any return value from the urb->complete function. It calls usb_put_urb which is #defined to usb_free_urb, so maybe we shouldn't be freeing this from rx_complete. But I can't get around the fact that this has not been detected as a problem till now, so I could be quite wrong about this. :) Signed-off-by: Kautuk Consul <consul.kautuk@gmail.com> --- drivers/net/usb/usbnet.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)