The size of the status_driver_data field was not adjusted when the is_valid_ack_signal field was added. Since the size of struct ieee80211_tx_info is limited, replace the is_valid_ack_signal field with a flags field, and adjust the struct size accordingly.
Showing the changes to include (1 of 5 files). Show all
Unified · Split
| @@ -7,7 +7,7 @@ · 6 unmodified lines | ||
| 7 | 7 | * Copyright 2007-2010 Johannes Berg <johannes@sipsolutions.net> |
| 8 | 8 | * Copyright 2013-2014 Intel Mobile Communications GmbH |
| 9 | 9 | * Copyright (C) 2015 - 2017 Intel Deutschland GmbH |
| 10 | − * Copyright (C) 2018 - 2021 Intel Corporation | |
| 10 | + * Copyright (C) 2018 - 2022 Intel Corporation | |
| 11 | 11 | */ |
| 12 | 12 | |
| 13 | 13 | #ifndef MAC80211_H |
| @@ -883,6 +883,17 @@ enum mac80211_tx_control_flags { · 869 unmodified lines | ||
| 883 | 883 | IEEE80211_TX_CTRL_DONT_REORDER = BIT(8), |
| 884 | 884 | }; |
| 885 | 885 | |
| 886 | +/** | |
| 887 | + * enum mac80211_tx_status_flags - flags to describe transmit status | |
| 888 | + * | |
| 889 | + * @IEEE80211_TX_STATUS_ACK_SIGNAL_VALID: ACK signal is valid | |
| 890 | + * | |
| 891 | + * These flags are used in tx_info->status.flags. | |
| 892 | + */ | |
| 893 | +enum mac80211_tx_status_flags { | |
| 894 | + IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = BIT(0), | |
| 895 | +}; | |
| 896 | + | |
| 886 | 897 | /* |
| 887 | 898 | * This definition is used as a mask to clear all temporary flags, which are |
| 888 | 899 | * set by the tx handlers for each transmission attempt by the mac80211 stack. |
| @@ -1046,7 +1057,7 @@ ieee80211_rate_get_vht_nss(const struct ieee80211_tx_rate *rate) · 157 unmodified lines | ||
| 1046 | 1057 | * @status.antenna: (legacy, kept only for iwlegacy) |
| 1047 | 1058 | * @status.tx_time: airtime consumed for transmission; note this is only |
| 1048 | 1059 | * used for WMM AC, not for airtime fairness |
| 1049 | − * @status.is_valid_ack_signal: ACK signal is valid | |
| 1060 | + * @status.flags: status flags, see &enum mac80211_tx_status_flags | |
| 1050 | 1061 | * @status.status_driver_data: driver use area |
| 1051 | 1062 | * @ack: union part for pure ACK data |
| 1052 | 1063 | * @ack.cookie: cookie for the ACK |
| @@ -1099,8 +1110,8 @@ struct ieee80211_tx_info { · 46 unmodified lines | ||
| 1099 | 1110 | u8 ampdu_len; |
| 1100 | 1111 | u8 antenna; |
| 1101 | 1112 | u16 tx_time; |
| 1102 | − bool is_valid_ack_signal; | |
| 1103 | − void *status_driver_data[19 / sizeof(void *)]; | |
| 1113 | + u8 flags; | |
| 1114 | + void *status_driver_data[18 / sizeof(void *)]; | |
| 1104 | 1115 | } status; |
| 1105 | 1116 | struct { |
| 1106 | 1117 | struct ieee80211_tx_rate driver_rates[ |