diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-10-30 15:17:56 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-10-30 15:17:56 +0000 |
commit | ec3ee0969e6ecf49a2c98ce96f6977906ada0553 (patch) | |
tree | 29f379f37176d854bf3d91746b6e9e683590c6ea /package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch | |
parent | f79bae2fc011c8ea553c878dc3f0e09ef9b0217a (diff) | |
download | upstream-ec3ee0969e6ecf49a2c98ce96f6977906ada0553.tar.gz upstream-ec3ee0969e6ecf49a2c98ce96f6977906ada0553.tar.bz2 upstream-ec3ee0969e6ecf49a2c98ce96f6977906ada0553.zip |
mac80211: update to wireless-testing 2015-10-26
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47286
Diffstat (limited to 'package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch')
-rw-r--r-- | package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch b/package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch deleted file mode 100644 index 2d5f7b9be7..0000000000 --- a/package/kernel/mac80211/patches/316-brcmfmac-block-the-correct-flowring-when-backup-queu.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: Franky Lin <frankyl@broadcom.com> -Date: Thu, 20 Aug 2015 22:06:06 +0200 -Subject: [PATCH] brcmfmac: block the correct flowring when backup queue - overflow - -brcmf_flowring_block blocks the last active flowring under the same -interface instead of the one provided by caller. This could lead to a -dead lock of netif stop if there are more than one flowring under the -interface and the traffic is high enough so brcmf_flowring_enqueue can -not unblock the ring right away. - -Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> -Reviewed-by: Hante Meuleman <meuleman@broadcom.com> -Signed-off-by: Franky Lin <frankyl@broadcom.com> -Signed-off-by: Arend van Spriel <arend@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - ---- a/drivers/net/wireless/brcm80211/brcmfmac/flowring.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/flowring.c -@@ -194,11 +194,15 @@ static void brcmf_flowring_block(struct - spin_lock_irqsave(&flow->block_lock, flags); - - ring = flow->rings[flowid]; -+ if (ring->blocked == blocked) { -+ spin_unlock_irqrestore(&flow->block_lock, flags); -+ return; -+ } - ifidx = brcmf_flowring_ifidx_get(flow, flowid); - - currently_blocked = false; - for (i = 0; i < flow->nrofrings; i++) { -- if (flow->rings[i]) { -+ if ((flow->rings[i]) && (i != flowid)) { - ring = flow->rings[i]; - if ((ring->status == RING_OPEN) && - (brcmf_flowring_ifidx_get(flow, i) == ifidx)) { -@@ -209,8 +213,8 @@ static void brcmf_flowring_block(struct - } - } - } -- ring->blocked = blocked; -- if (currently_blocked == blocked) { -+ flow->rings[flowid]->blocked = blocked; -+ if (currently_blocked) { - spin_unlock_irqrestore(&flow->block_lock, flags); - return; - } |