aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2013-04-23 06:53:13 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-23 14:17:02 -0400
commit9a83f1ec670fa574ffbfa9fb1f3fdaa9c6be5974 (patch)
tree9f268e9c1801bdf7e8a116cf33d2e47f24afb3d2
parent61730d4dfffc2cc9d3a49fad87633008105c18ba (diff)
brcmfmac: flush queue upon MACDESC_DEL firmware signal
When firmware signals the driver to remove a destination entry it may have sk_buff packets queued for it. These should be freed. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
index 66cdc45add4e..b0591e3da49a 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
@@ -871,9 +871,10 @@ int brcmf_fws_macdesc_indicate(struct brcmf_fws_info *fws, u8 type, u8 *data)
871 entry = &fws->desc.nodes[mac_handle & 0x1F]; 871 entry = &fws->desc.nodes[mac_handle & 0x1F];
872 if (type == BRCMF_FWS_TYPE_MACDESC_DEL) { 872 if (type == BRCMF_FWS_TYPE_MACDESC_DEL) {
873 brcmf_dbg(TRACE, "deleting mac %pM idx %d\n", addr, ifidx); 873 brcmf_dbg(TRACE, "deleting mac %pM idx %d\n", addr, ifidx);
874 if (entry->occupied) 874 if (entry->occupied) {
875 brcmf_fws_mac_desc_cleanup(fws, entry, -1);
875 brcmf_fws_clear_mac_descriptor(entry); 876 brcmf_fws_clear_mac_descriptor(entry);
876 else 877 } else
877 fws->stats.mac_update_failed++; 878 fws->stats.mac_update_failed++;
878 return 0; 879 return 0;
879 } 880 }