brcmfmac: refill buffers on rx protocol error.
authorHante Meuleman <meuleman@broadcom.com>
Tue, 11 Sep 2012 19:18:50 +0000 (21:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 12 Sep 2012 18:19:16 +0000 (14:19 -0400)
This patch fixes a bug where rx buffer does not get refilled if the
packet received has an rx protocol error.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/usb.c

index 8aab2a22d6a145fdaf12bbe4aea49e95f7dea3dd..6e3ff6f61103d234c38933bfae3d908829ba331d 100644 (file)
@@ -552,12 +552,10 @@ static void brcmf_usb_rx_complete(struct urb *urb)
                if (brcmf_proto_hdrpull(devinfo->dev, &ifidx, skb) != 0) {
                        brcmf_dbg(ERROR, "rx protocol error\n");
                        brcmu_pkt_buf_free_skb(skb);
-                       brcmf_usb_enq(devinfo, &devinfo->rx_freeq, req, NULL);
                        devinfo->bus_pub.bus->dstats.rx_errors++;
-               } else {
+               } else
                        brcmf_rx_packet(devinfo->dev, ifidx, skb);
-                       brcmf_usb_rx_refill(devinfo, req);
-               }
+               brcmf_usb_rx_refill(devinfo, req);
        } else {
                brcmu_pkt_buf_free_skb(skb);
                brcmf_usb_enq(devinfo, &devinfo->rx_freeq, req, NULL);