We fail to release 'urb' if '_rtl_prep_rx_urb()' fails in
_rtl_usb_receive().
This patch should take care of the leak.
Signed-off-by: Jesper Juhl <[email protected]>
---
drivers/net/wireless/rtlwifi/usb.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
note: compile tested only.
diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
index 29f0969..75c29e6 100644
--- a/drivers/net/wireless/rtlwifi/usb.c
+++ b/drivers/net/wireless/rtlwifi/usb.c
@@ -640,6 +640,7 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw)
RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
"Failed to prep_rx_urb!!\n");
err = PTR_ERR(skb);
+ usb_free_urb(urb);
goto err_out;
}
--
1.7.1
--
Jesper Juhl <[email protected]> http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.
On 12/26/2012 02:51 PM, Jesper Juhl wrote:
> We fail to release 'urb' if '_rtl_prep_rx_urb()' fails in
> _rtl_usb_receive().
> This patch should take care of the leak.
>
> Signed-off-by: Jesper Juhl <[email protected]>
> ---
> drivers/net/wireless/rtlwifi/usb.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> note: compile tested only.
This looks correct to me. I have never seen that RT_TRACE() fire, thus such an
error must be uncommon, at least on my system.
Acked-by: Larry Finger <[email protected]>
Thanks,
Larry
>
> diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
> index 29f0969..75c29e6 100644
> --- a/drivers/net/wireless/rtlwifi/usb.c
> +++ b/drivers/net/wireless/rtlwifi/usb.c
> @@ -640,6 +640,7 @@ static int _rtl_usb_receive(struct ieee80211_hw *hw)
> RT_TRACE(rtlpriv, COMP_USB, DBG_EMERG,
> "Failed to prep_rx_urb!!\n");
> err = PTR_ERR(skb);
> + usb_free_urb(urb);
> goto err_out;
> }
>
>