···14621462 RX_ENC_HT,14631463 RX_ENC_VHT,14641464 RX_ENC_HE,14651465+ RX_ENC_EHT,14651466};1466146714671468/**···14961495 * @antenna: antenna used14971496 * @rate_idx: index of data rate into band's supported rates or MCS index if14981497 * HT or VHT is used (%RX_FLAG_HT/%RX_FLAG_VHT)14991499- * @nss: number of streams (VHT and HE only)14981498+ * @nss: number of streams (VHT, HE and EHT only)15001499 * @flag: %RX_FLAG_\*15011500 * @encoding: &enum mac80211_rx_encoding15021501 * @bw: &enum rate_info_bw···15041503 * @he_ru: HE RU, from &enum nl80211_he_ru_alloc15051504 * @he_gi: HE GI, from &enum nl80211_he_gi15061505 * @he_dcm: HE DCM value15061506+ * @eht.ru: EHT RU, from &enum nl80211_eht_ru_alloc15071507+ * @eht.gi: EHT GI, from &enum nl80211_eht_gi15071508 * @rx_flags: internal RX flags for mac8021115081509 * @ampdu_reference: A-MPDU reference number, must be a different value for15091510 * each A-MPDU but the same for each subframe within one A-MPDU···15271524 u32 flag;15281525 u16 freq: 13, freq_offset: 1;15291526 u8 enc_flags;15301530- u8 encoding:2, bw:3, he_ru:3;15311531- u8 he_gi:2, he_dcm:1;15271527+ u8 encoding:3, bw:4;15281528+ union {15291529+ struct {15301530+ u8 he_ru:3;15311531+ u8 he_gi:2;15321532+ u8 he_dcm:1;15331533+ };15341534+ struct {15351535+ u8 ru:4;15361536+ u8 gi:2;15371537+ } eht;15381538+ };15321539 u8 rate_idx;15331540 u8 nss;15341541 u8 rx_flags;
+9
net/mac80211/rx.c
···51945194 status->rate_idx, status->nss))51955195 goto drop;51965196 break;51975197+ case RX_ENC_EHT:51985198+ if (WARN_ONCE(status->rate_idx > 15 ||51995199+ !status->nss ||52005200+ status->nss > 8 ||52015201+ status->eht.gi > NL80211_RATE_INFO_EHT_GI_3_2,52025202+ "Rate marked as an EHT rate but data is invalid: MCS:%d, NSS:%d, GI:%d\n",52035203+ status->rate_idx, status->nss, status->eht.gi))52045204+ goto drop;52055205+ break;51975206 default:51985207 WARN_ON_ONCE(1);51995208 fallthrough;