aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2013-04-17 15:25:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-22 15:20:23 -0400
commit67994fa24accac120a6ae9720ef0cba0166ce121 (patch)
tree6e4ac02133bceea6407792027fa3d73b973e8c8a
parent6d421e54c2277990f3b0e3dd92e446800c90efa3 (diff)
brcmfmac: finalize transmit upon any rollback failure
All rollback failures should result in freeing of the sk_buff by calling brcmf_txfinalize(). 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>
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
index 1cfec5601c68..13518ecce047 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/fwsignal.c
@@ -1616,7 +1616,6 @@ brcmf_fws_rollback_toq(struct brcmf_fws_info *fws, struct sk_buff *skb)
1616 /* free the hanger slot */ 1616 /* free the hanger slot */
1617 brcmf_fws_hanger_poppkt(&fws->hanger, hslot, 1617 brcmf_fws_hanger_poppkt(&fws->hanger, hslot,
1618 &pktout, true); 1618 &pktout, true);
1619 brcmf_txfinalize(fws->drvr, skb, false);
1620 rc = -EINVAL; 1619 rc = -EINVAL;
1621 goto fail; 1620 goto fail;
1622 } 1621 }
@@ -1650,9 +1649,10 @@ brcmf_fws_rollback_toq(struct brcmf_fws_info *fws, struct sk_buff *skb)
1650 1649
1651 1650
1652fail: 1651fail:
1653 if (rc) 1652 if (rc) {
1653 brcmf_txfinalize(fws->drvr, skb, false);
1654 fws->stats.rollback_failed++; 1654 fws->stats.rollback_failed++;
1655 else 1655 } else
1656 fws->stats.rollback_success++; 1656 fws->stats.rollback_success++;
1657 return rc; 1657 return rc;
1658} 1658}