mac80211: make CALL_TXH a statement

The multi-line code in this macro wasn't wrapped
in do {} while (0) so we cannot use it in an if()
branch safely in the future -- fix that.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Johannes Berg 2009-10-29 08:43:48 +01:00 committed by John W. Linville
parent 86c34fe89e
commit 9aa4aee30f

View file

@ -1200,23 +1200,25 @@ static int invoke_tx_handlers(struct ieee80211_tx_data *tx)
struct sk_buff *skb = tx->skb; struct sk_buff *skb = tx->skb;
ieee80211_tx_result res = TX_DROP; ieee80211_tx_result res = TX_DROP;
#define CALL_TXH(txh) \ #define CALL_TXH(txh) \
res = txh(tx); \ do { \
if (res != TX_CONTINUE) \ res = txh(tx); \
goto txh_done; if (res != TX_CONTINUE) \
goto txh_done; \
} while (0)
CALL_TXH(ieee80211_tx_h_check_assoc) CALL_TXH(ieee80211_tx_h_check_assoc);
CALL_TXH(ieee80211_tx_h_ps_buf) CALL_TXH(ieee80211_tx_h_ps_buf);
CALL_TXH(ieee80211_tx_h_select_key) CALL_TXH(ieee80211_tx_h_select_key);
CALL_TXH(ieee80211_tx_h_michael_mic_add) CALL_TXH(ieee80211_tx_h_michael_mic_add);
CALL_TXH(ieee80211_tx_h_rate_ctrl) CALL_TXH(ieee80211_tx_h_rate_ctrl);
CALL_TXH(ieee80211_tx_h_misc) CALL_TXH(ieee80211_tx_h_misc);
CALL_TXH(ieee80211_tx_h_sequence) CALL_TXH(ieee80211_tx_h_sequence);
CALL_TXH(ieee80211_tx_h_fragment) CALL_TXH(ieee80211_tx_h_fragment);
/* handlers after fragment must be aware of tx info fragmentation! */ /* handlers after fragment must be aware of tx info fragmentation! */
CALL_TXH(ieee80211_tx_h_stats) CALL_TXH(ieee80211_tx_h_stats);
CALL_TXH(ieee80211_tx_h_encrypt) CALL_TXH(ieee80211_tx_h_encrypt);
CALL_TXH(ieee80211_tx_h_calculate_duration) CALL_TXH(ieee80211_tx_h_calculate_duration);
#undef CALL_TXH #undef CALL_TXH
txh_done: txh_done: