Commit 8e967c13 authored by Shaul Triebitz's avatar Shaul Triebitz Committed by Luca Coelho
Browse files

iwlwifi: mvm: avoid clearing a just saved session protection id



When scheduling a session protection the id is saved but
then it may be cleared when calling iwl_mvm_te_clear_data
(if a previous session protection is currently active).
Fix it by saving the id after calling iwl_mvm_te_clear_data.

Signed-off-by: default avatarShaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20211204130722.b0743a588d14.I098fef6677d0dab3ef1b6183ed206a10bab01eb2@changeid


Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 6324c173
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -1158,15 +1158,10 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
			cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id,
							mvmvif->color)),
		.action = cpu_to_le32(FW_CTXT_ACTION_ADD),
		.conf_id = cpu_to_le32(SESSION_PROTECT_CONF_ASSOC),
		.duration_tu = cpu_to_le32(MSEC_TO_TU(duration)),
	};

	/* The time_event_data.id field is reused to save session
	 * protection's configuration.
	 */
	mvmvif->time_event_data.id = SESSION_PROTECT_CONF_ASSOC;
	cmd.conf_id = cpu_to_le32(mvmvif->time_event_data.id);

	lockdep_assert_held(&mvm->mutex);

	spin_lock_bh(&mvm->time_event_lock);
@@ -1180,6 +1175,11 @@ void iwl_mvm_schedule_session_protection(struct iwl_mvm *mvm,
	}

	iwl_mvm_te_clear_data(mvm, te_data);
	/*
	 * The time_event_data.id field is reused to save session
	 * protection's configuration.
	 */
	te_data->id = le32_to_cpu(cmd.conf_id);
	te_data->duration = le32_to_cpu(cmd.duration_tu);
	te_data->vif = vif;
	spin_unlock_bh(&mvm->time_event_lock);