Commit 047445c5 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville
Browse files

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: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 88f656fa
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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++;
		}