brcmfmac: stop dequeue upon sk_buff commit failure
In the dequeue worker the function brcmf_commit_skb() is called. However, instead of increment the credit count upon success it should break the for loop upon failure. Otherwise, it will result in an endless loop. Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@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
88f656fa10
commit
047445c579
@ -1850,10 +1850,9 @@ static void brcmf_fws_dequeue_worker(struct work_struct *worker)
|
||||
fws->fifo_credit[fifo]);
|
||||
for (credit = 0; credit < fws->fifo_credit[fifo]; /* nop */) {
|
||||
skb = brcmf_fws_deq(fws, fifo);
|
||||
if (!skb)
|
||||
if (!skb || brcmf_fws_commit_skb(fws, fifo, skb))
|
||||
break;
|
||||
if (!brcmf_fws_commit_skb(fws, fifo, skb) &&
|
||||
brcmf_skbcb(skb)->if_flags &
|
||||
if (brcmf_skbcb(skb)->if_flags &
|
||||
BRCMF_SKB_IF_FLAGS_CREDITCHECK_MASK)
|
||||
credit++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user