brcmfmac: do not reconfigure refill rx on 0-length packet.
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 <arend@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@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>
This commit is contained in:
parent
637ccc27f4
commit
0429a6fa6b
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user