projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
637ccc2
)
brcmfmac: do not reconfigure refill rx on 0-length packet.
author
Hante Meuleman
<
[email protected]
>
Wed, 2 Jan 2013 14:22:38 +0000
(15:22 +0100)
committer
John W. Linville
<
[email protected]
>
Mon, 7 Jan 2013 20:16:55 +0000
(15:16 -0500)
When USB device gets removed rx complete comes with 0-length
packets. Do not refill those packets. In some rare cases it can
cause infinite loop.
Reviewed-by: Arend Van Spriel <
[email protected]
>
Reviewed-by: Pieter-Paul Giesberts <
[email protected]
>
Signed-off-by: Hante Meuleman <
[email protected]
>
Signed-off-by: Arend van Spriel <
[email protected]
>
Signed-off-by: John W. Linville <
[email protected]
>
drivers/net/wireless/brcm80211/brcmfmac/usb.c
patch
|
blob
|
history
diff --git
a/drivers/net/wireless/brcm80211/brcmfmac/usb.c
b/drivers/net/wireless/brcm80211/brcmfmac/usb.c
index 914c56fe6c5f72ec260e27779ebac182b3d2dd0a..22eae57d9546645489814c0f302eb5aaca583539 100644
(file)
--- a/
drivers/net/wireless/brcm80211/brcmfmac/usb.c
+++ b/
drivers/net/wireless/brcm80211/brcmfmac/usb.c
@@
-467,7
+467,11
@@
static void brcmf_usb_rx_complete(struct urb *urb)
devinfo->bus_pub.bus->dstats.rx_errors++;
} else
brcmf_rx_packet(devinfo->dev, ifidx, skb);
- brcmf_usb_rx_refill(devinfo, req);
+ /* zero lenght packets indicate usb "failure". Do not refill */
+ if (urb->actual_length)
+ brcmf_usb_rx_refill(devinfo, req);
+ else
+ brcmf_usb_enq(devinfo, &devinfo->rx_freeq, req, NULL);
} else {
brcmu_pkt_buf_free_skb(skb);
brcmf_usb_enq(devinfo, &devinfo->rx_freeq, req, NULL);