wifi: iwlwifi: mvm: Use IWL_FW_CHECK() for BAR notif size validation
authorDaniel Gabay <daniel.gabay@intel.com>
Thu, 26 Dec 2024 15:44:54 +0000 (17:44 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jan 2025 13:00:55 +0000 (14:00 +0100)
Use IWL_FW_CHECK() for BAR notification size validation, improving
diagnostics with a clear error message on failure.

Signed-off-by: Daniel Gabay <daniel.gabay@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241226174257.913d5d476929.I8cd62f45bacc088c309b0152fc392dc2579e82e0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index e8ea489..c03cb7c 100644 (file)
@@ -2507,9 +2507,12 @@ void iwl_mvm_rx_bar_frame_release(struct iwl_mvm *mvm, struct napi_struct *napi,
        struct iwl_rx_packet *pkt = rxb_addr(rxb);
        struct iwl_bar_frame_release *release = (void *)pkt->data;
        struct iwl_mvm_baid_data *baid_data;
+       u32 pkt_len = iwl_rx_packet_payload_len(pkt);
        unsigned int baid, nssn, sta_id, tid;
 
-       if (unlikely(iwl_rx_packet_payload_len(pkt) < sizeof(*release)))
+       if (IWL_FW_CHECK(mvm, pkt_len < sizeof(*release),
+                        "Unexpected frame release notif size %d (expected %zu)\n",
+                        pkt_len, sizeof(*release)))
                return;
 
        baid = le32_get_bits(release->ba_info,