wifi: iwlwifi: fw: move memset before early return
authorTom Rix <trix@redhat.com>
Fri, 14 Apr 2023 10:11:58 +0000 (13:11 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 May 2023 14:03:23 +0000 (23:03 +0900)
[ Upstream commit 8ce437dd5b2e4adef13aa4ecce07392f9966b1ab ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/intel/iwlwifi/fw/dbg.c

index bde6f0764a5381aa9a1055645ffa3916a1e395be..027360e63b926a7aa03418d8c010781c102fd72f 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",