wifi: iwlwifi: mvm: print an error instead of a warning on invalid rate
authorLuca Coelho <luciano.coelho@intel.com>
Wed, 2 Nov 2022 14:59:51 +0000 (16:59 +0200)
committerGregory Greenman <gregory.greenman@intel.com>
Thu, 10 Nov 2022 11:26:44 +0000 (13:26 +0200)
In some rare occasions, the firmware may let some frames with invalid
rates, such as CCK rates on the high band, come through.  This causes
the driver to issue a warning, but since this is a possible issue and
it's not really a bug in the driver, convert the warning into an
error.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20221102165239.3d3673c70556.I13464b11d405fd6021618b0a32404cecb7e9ac51@changeid
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c

index 1aadccd8841fd2c536b7934384c2f256ac819c59..5f782ca1e254150cc9c452185404c6985bcee862 100644 (file)
@@ -1747,10 +1747,12 @@ static void iwl_mvm_rx_fill_status(struct iwl_mvm *mvm,
 
                rx_status->rate_idx = rate;
 
-               if (WARN_ONCE(rate < 0 || rate > 0xFF,
-                             "Invalid rate flags 0x%x, band %d,\n",
-                             rate_n_flags, rx_status->band))
+               if ((rate < 0 || rate > 0xFF) && net_ratelimit()) {
+                       IWL_ERR(mvm, "Invalid rate flags 0x%x, band %d,\n",
+                               rate_n_flags, rx_status->band);
                        rx_status->rate_idx = 0;
+               }
+
                break;
                }
        }