iwlwifi: clear trans->op_mode pointer when it is leaving
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 27 Nov 2012 19:36:54 +0000 (21:36 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 28 Nov 2012 14:35:04 +0000 (15:35 +0100)
Since the op_mode is leaving, the transport should set
its pointer to it to NULL to not point to freed memory.

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

index e378ea6dca9c1b23c5edbc898ea07ce4d3553506..98072c2067eb8bf742141bf19a775a8544a8adc0 100644 (file)
@@ -489,10 +489,6 @@ struct iwl_trans {
 static inline void iwl_trans_configure(struct iwl_trans *trans,
                                       const struct iwl_trans_config *trans_cfg)
 {
-       /*
-        * only set the op_mode for the moment. Later on, this function will do
-        * more
-        */
        trans->op_mode = trans_cfg->op_mode;
 
        trans->ops->configure(trans, trans_cfg);
@@ -512,6 +508,9 @@ static inline void iwl_trans_stop_hw(struct iwl_trans *trans,
 
        trans->ops->stop_hw(trans, op_mode_leaving);
 
+       if (op_mode_leaving)
+               trans->op_mode = NULL;
+
        trans->state = IWL_TRANS_NO_FW;
 }