[Madwifi-cvs] revision 2032 committed
Status: Beta
Brought to you by:
otaku
From: Pavel R. <svn...@ma...> - 2007-01-31 02:32:40
|
Project : madwifi Revision : 2032 Author : proski (Pavel Roskin) Date : 2007-01-31 03:32:30 +0100 (Wed, 31 Jan 2007) Log Message : Fix another missing unlock found by sparse ATH_HARDSTART_GET_TX_BUF_WITH_LOCK includes "goto hardstart_fail", which fails to unlock another lock, the txq lock, in one case. Separate the goto from the macro and write it explicitly every time. Affected Files: * trunk/ath/if_ath.c updated Modified: trunk/ath/if_ath.c =================================================================== --- trunk/ath/if_ath.c 2007-01-30 05:54:26 UTC (rev 2031) +++ trunk/ath/if_ath.c 2007-01-31 02:32:30 UTC (rev 2032) @@ -2497,7 +2497,6 @@ DPRINTF(sc,ATH_DEBUG_XMIT, \ "%s: discard, no xmit buf\n", __func__); \ sc->sc_stats.ast_tx_nobuf++; \ - goto hardstart_fail; \ } /* @@ -2540,6 +2539,8 @@ if (cb->flags & M_RAW) { ATH_HARDSTART_GET_TX_BUF_WITH_LOCK; + if (bf == NULL) + goto hardstart_fail; return ath_tx_startraw(dev, bf, skb); } @@ -2557,6 +2558,8 @@ if (M_FLAG_GET(skb, M_UAPSD)) { /* bypass FF handling */ ATH_HARDSTART_GET_TX_BUF_WITH_LOCK; + if (bf == NULL) + goto hardstart_fail; goto ff_bypass; } @@ -2611,6 +2614,10 @@ * to give the buffer back. */ ATH_HARDSTART_GET_TX_BUF_WITH_LOCK; + if (bf == NULL) { + ATH_TXQ_UNLOCK(txq); + goto hardstart_fail; + } DPRINTF(sc, ATH_DEBUG_XMIT | ATH_DEBUG_FF, "%s: adding to fast-frame stage Q\n", __func__); @@ -2680,6 +2687,8 @@ ff_flushdone: ATH_HARDSTART_GET_TX_BUF_WITH_LOCK; + if (bf == NULL) + goto hardstart_fail; } ff_bypass: |