wifi: iwlwifi: don't silently ignore missing suspend or resume ops
authorHaim Dreyfuss <haim.dreyfuss@intel.com>
Wed, 24 May 2023 17:42:03 +0000 (20:42 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 6 Jun 2023 11:04:02 +0000 (13:04 +0200)
In case the driver doesn't implement suspend or resume operations
on the transport layer, notify the driver's upper layer.
Otherwise, we might access d3_status uninitialized.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230524203151.0c55e0ca92f1.I6870fe1683215e65d3d036f9b576b03b7b7257be@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-trans.h

index 9f1228b..885581e 100644 (file)
@@ -1160,7 +1160,7 @@ static inline int iwl_trans_d3_suspend(struct iwl_trans *trans, bool test,
 {
        might_sleep();
        if (!trans->ops->d3_suspend)
-               return 0;
+               return -EOPNOTSUPP;
 
        return trans->ops->d3_suspend(trans, test, reset);
 }
@@ -1171,7 +1171,7 @@ static inline int iwl_trans_d3_resume(struct iwl_trans *trans,
 {
        might_sleep();
        if (!trans->ops->d3_resume)
-               return 0;
+               return -EOPNOTSUPP;
 
        return trans->ops->d3_resume(trans, status, test, reset);
 }