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:
Родитель
86c34fe89e
Коммит
9aa4aee30f
|
@ -1201,22 +1201,24 @@ static int invoke_tx_handlers(struct ieee80211_tx_data *tx)
|
|||
ieee80211_tx_result res = TX_DROP;
|
||||
|
||||
#define CALL_TXH(txh) \
|
||||
do { \
|
||||
res = txh(tx); \
|
||||
if (res != TX_CONTINUE) \
|
||||
goto txh_done;
|
||||
goto txh_done; \
|
||||
} while (0)
|
||||
|
||||
CALL_TXH(ieee80211_tx_h_check_assoc)
|
||||
CALL_TXH(ieee80211_tx_h_ps_buf)
|
||||
CALL_TXH(ieee80211_tx_h_select_key)
|
||||
CALL_TXH(ieee80211_tx_h_michael_mic_add)
|
||||
CALL_TXH(ieee80211_tx_h_rate_ctrl)
|
||||
CALL_TXH(ieee80211_tx_h_misc)
|
||||
CALL_TXH(ieee80211_tx_h_sequence)
|
||||
CALL_TXH(ieee80211_tx_h_fragment)
|
||||
CALL_TXH(ieee80211_tx_h_check_assoc);
|
||||
CALL_TXH(ieee80211_tx_h_ps_buf);
|
||||
CALL_TXH(ieee80211_tx_h_select_key);
|
||||
CALL_TXH(ieee80211_tx_h_michael_mic_add);
|
||||
CALL_TXH(ieee80211_tx_h_rate_ctrl);
|
||||
CALL_TXH(ieee80211_tx_h_misc);
|
||||
CALL_TXH(ieee80211_tx_h_sequence);
|
||||
CALL_TXH(ieee80211_tx_h_fragment);
|
||||
/* handlers after fragment must be aware of tx info fragmentation! */
|
||||
CALL_TXH(ieee80211_tx_h_stats)
|
||||
CALL_TXH(ieee80211_tx_h_encrypt)
|
||||
CALL_TXH(ieee80211_tx_h_calculate_duration)
|
||||
CALL_TXH(ieee80211_tx_h_stats);
|
||||
CALL_TXH(ieee80211_tx_h_encrypt);
|
||||
CALL_TXH(ieee80211_tx_h_calculate_duration);
|
||||
#undef CALL_TXH
|
||||
|
||||
txh_done:
|
||||
|
|
Загрузка…
Ссылка в новой задаче