diff options
author | Hante Meuleman <meuleman@broadcom.com> | 2012-09-11 23:18:46 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-09-12 22:19:14 +0400 |
commit | 90d03ff71b52ba1d9d53f18c07d89566ba0263b4 (patch) | |
tree | 14b40e240d4b393f5a67640543a862b0aaddaf9c /drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | |
parent | 871fc09f1c8a9c0652afa7c673ae401fdb3f4aeb (diff) | |
download | linux-90d03ff71b52ba1d9d53f18c07d89566ba0263b4.tar.xz |
brcmfmac: Stop all net if queues on tx flow halt.
When tx flow is to be blocked due to host interface throttle then
all net if queues should be stopped.
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
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>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c index 7f9ba82a586a..b08f3474d8e7 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -350,19 +350,23 @@ done: return 0; } -void brcmf_txflowcontrol(struct device *dev, int ifidx, bool state) +void brcmf_txflowblock(struct device *dev, bool state) { struct net_device *ndev; struct brcmf_bus *bus_if = dev_get_drvdata(dev); struct brcmf_pub *drvr = bus_if->drvr; + int i; brcmf_dbg(TRACE, "Enter\n"); - ndev = drvr->iflist[ifidx]->ndev; - if (state == ON) - netif_stop_queue(ndev); - else - netif_wake_queue(ndev); + for (i = 0; i < BRCMF_MAX_IFS; i++) + if (drvr->iflist[i]) { + ndev = drvr->iflist[i]->ndev; + if (state) + netif_stop_queue(ndev); + else + netif_wake_queue(ndev); + } } static int brcmf_host_event(struct brcmf_pub *drvr, int *ifidx, |