wifi: iwlwifi: fw: move memset before early return
authorTom Rix <trix@redhat.com>
Fri, 14 Apr 2023 10:11:58 +0000 (13:11 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 14 Apr 2023 11:15:26 +0000 (13:15 +0200)
Clang static analysis reports this representative issue
dbg.c:1455:6: warning: Branch condition evaluates to
a garbage value
  if (!rxf_data.size)
       ^~~~~~~~~~~~~~

This check depends on iwl_ini_get_rxf_data() to clear
rxf_data but the function can return early without
doing the clear.  So move the memset before the early
return.

Fixes: cc9b6012d34b ("iwlwifi: yoyo: use hweight_long instead of bit manipulating")
Signed-off-by: Tom Rix <trix@redhat.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230414130637.872a7175f1ff.I33802a77a91998276992b088fbe25f61c87c33ac@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/fw/dbg.c

index d5b5149..d9faaae 100644 (file)
@@ -1388,13 +1388,13 @@ static void iwl_ini_get_rxf_data(struct iwl_fw_runtime *fwrt,
        if (!data)
                return;
 
+       memset(data, 0, sizeof(*data));
+
        /* make sure only one bit is set in only one fid */
        if (WARN_ONCE(hweight_long(fid1) + hweight_long(fid2) != 1,
                      "fid1=%x, fid2=%x\n", fid1, fid2))
                return;
 
-       memset(data, 0, sizeof(*data));
-
        if (fid1) {
                fifo_idx = ffs(fid1) - 1;
                if (WARN_ONCE(fifo_idx >= MAX_NUM_LMAC, "fifo_idx=%d\n",