OSDN Git Service

iwlwifi: make some functions friendly to sparse
authorJohannes Berg <johannes.berg@intel.com>
Sun, 30 Jan 2022 09:53:04 +0000 (11:53 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 18 Feb 2022 08:40:52 +0000 (10:40 +0200)
Somehow, sparse cannot track the cond_lock() here properly,
but if we return directly from the inner basic block then
it doesn't complain. Refactor the code a bit to make it not
complain.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20220130115024.3f9de2d59929.Ib6324e93951ee877754538c89f3ab2a84998bd40@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-io.c

index 253eac4..396f2c9 100644 (file)
@@ -65,14 +65,14 @@ IWL_EXPORT_SYMBOL(iwl_poll_bit);
 
 u32 iwl_read_direct32(struct iwl_trans *trans, u32 reg)
 {
-       u32 value = 0x5a5a5a5a;
-
        if (iwl_trans_grab_nic_access(trans)) {
-               value = iwl_read32(trans, reg);
+               u32 value = iwl_read32(trans, reg);
+
                iwl_trans_release_nic_access(trans);
+               return value;
        }
 
-       return value;
+       return 0x5a5a5a5a;
 }
 IWL_EXPORT_SYMBOL(iwl_read_direct32);
 
@@ -135,13 +135,15 @@ IWL_EXPORT_SYMBOL(iwl_write_prph64_no_grab);
 
 u32 iwl_read_prph(struct iwl_trans *trans, u32 ofs)
 {
-       u32 val = 0x5a5a5a5a;
-
        if (iwl_trans_grab_nic_access(trans)) {
-               val = iwl_read_prph_no_grab(trans, ofs);
+               u32 val = iwl_read_prph_no_grab(trans, ofs);
+
                iwl_trans_release_nic_access(trans);
+
+               return val;
        }
-       return val;
+
+       return 0x5a5a5a5a;
 }
 IWL_EXPORT_SYMBOL(iwl_read_prph);