Hardware reports a list of PHY status IE. In monitor mode, IE-09 of
PHY status is enabled, and the report contains trailing 8-byte zeros,
causing failed to parse and drop all IE information.
The 8 zeros are recognize as IE type 0, but length of type 0 must be
not 8 (reference to rtw89_phy_gen_def::physt_ie_len[0]).
Check and skip them.
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260506131000.1706298-13-pkshih@realtek.com
while (pos < end) {
const struct rtw89_phy_sts_iehdr *iehdr = pos;
+ /*
+ * RTL8922D might reports 8 bytes zeros at end if IE09 presents.
+ * Check and ignore the zeros.
+ */
+ if (unlikely(phy_ppdu->ie09 && end - pos == 8 && iehdr->w0 == 0))
+ break;
+
ie_len = rtw89_core_get_phy_status_ie_len(rtwdev, iehdr);
pos += ie_len;
if (pos > end || ie_len == 0) {