iwlwifi: mvm: simplify iwl_mvm_get_wakeup_status() return
authorJohannes Berg <johannes.berg@intel.com>
Tue, 3 Mar 2015 19:23:47 +0000 (20:23 +0100)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 12 Mar 2015 07:57:49 +0000 (09:57 +0200)
The return value in iwl_mvm_get_wakeup_status() is a bit unclear in
that it's not obvious that we don't leak fw_status in some cases.
Use fw_status directly with ERR_PTR() and return only it, that way
the compiler has a chance of proving that it's uninitialized (if it
ever is due to new changes.)

Additionally, this removes a smatch warning since smatch couldn't
figure out that fw_status can't, in fact, leak here.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/d3.c

index e3c308435bee55a1ac72977bb1c2a65f9a5a6dd4..5f8afa5f11a35f8da4761fb638d76f34f4f0a9eb 100644 (file)
@@ -1599,7 +1599,7 @@ iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
 
        /* RF-kill already asserted again... */
        if (!cmd.resp_pkt) {
-               ret = -ERFKILL;
+               fw_status = ERR_PTR(-ERFKILL);
                goto out_free_resp;
        }
 
@@ -1608,7 +1608,7 @@ iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
        len = iwl_rx_packet_payload_len(cmd.resp_pkt);
        if (len < status_size) {
                IWL_ERR(mvm, "Invalid WoWLAN status response!\n");
-               ret = -EIO;
+               fw_status = ERR_PTR(-EIO);
                goto out_free_resp;
        }
 
@@ -1616,7 +1616,7 @@ iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
        if (len != (status_size +
                    ALIGN(le32_to_cpu(status->wake_packet_bufsize), 4))) {
                IWL_ERR(mvm, "Invalid WoWLAN status response!\n");
-               ret = -EIO;
+               fw_status = ERR_PTR(-EIO);
                goto out_free_resp;
        }
 
@@ -1624,7 +1624,7 @@ iwl_mvm_get_wakeup_status(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
 
 out_free_resp:
        iwl_free_resp(&cmd);
-       return ret ? ERR_PTR(ret) : fw_status;
+       return fw_status;
 }
 
 /* releases the MVM mutex */