Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3648773pxb; Mon, 24 Jan 2022 14:23:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJw6738gFJciXp+KxzehJ+wR41pmlW586dkeeU9ZjmnDs0VgEM0GQcWHvn1SnDnKH9Mxc4ME X-Received: by 2002:a17:902:c944:b0:14b:4a68:8ce2 with SMTP id i4-20020a170902c94400b0014b4a688ce2mr7288895pla.87.1643063017980; Mon, 24 Jan 2022 14:23:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643063017; cv=none; d=google.com; s=arc-20160816; b=dfb4ou49S1QtkvDcF3HjuJa+QqaKR+QY7Y0bIc1n8bFtvOj1rnX4GdUdG3d9QmnFaq 2jNgvRJH9EDwsp8aPU5JssCBf42nGTeCU0ZHQ3fSEsW9ES/NNIqzYQ1/Fvl1UT2XLFuK PDavVE0fvmheteKfrGN9nR8E1T52mM0h26hVDB3QrbcoeEks2kkOUEIWetc5GfhEF26H dnm8YH99i1yzZdDK0upp3pMBq16zRYukoNJCv/kUbME3T1WuscbY9urSQCqJsIOEjBmf 5z8FYCD2eq2R1ce5yv5dGNaPrjqK9Ay+owAMYrsYJoSpnWRDKqUxhvLnQitk9i+uUVXP xCig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=tIhZxn8hYzsVFYOGa2cs+6D2yQeGAXeS/Midw0NCLFs=; b=UBt/+DBW3eqMf0aiwyHYYFOvleKLw/7b4vUdXHdVkfl7rLaEVuLPlt19sH4iP9CghB VA08sP1oTsv5wFerq5TBL4b6IDizsgaSAz2GThGIUj2aUjN8Wg/AprYpIe24EBtbCUDS pnho01PfNe3XeHLQH1luE2hF7QSrz/LRy3S9DKAviQU5UF6vSQxWjIEiHVZkZRW9yC9i wz2tKinIUdyIfYuQf+6qvlcNO5blnVjlcXiEAKLr2FISfS5zw2hJxe8HmXwmmVt1LJbk KP/s7wEZ5qyjwtyLKI0hM3urIHEzjlMZFJBWL49bPz5wcm0VJATUlJDWjO9uCK2jD5Tw lGaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xufJA65Q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e3si15023746pls.57.2022.01.24.14.23.26; Mon, 24 Jan 2022 14:23:37 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xufJA65Q; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1580286AbiAXWOx (ORCPT + 99 others); Mon, 24 Jan 2022 17:14:53 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:47454 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1452950AbiAXV12 (ORCPT ); Mon, 24 Jan 2022 16:27:28 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1AF28614D8; Mon, 24 Jan 2022 21:27:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F0476C340E4; Mon, 24 Jan 2022 21:27:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643059645; bh=TmhTFttc8Wf3beYe9Qj83vMhnXvOXEgoEjdWci6e82c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xufJA65QG6bAAcwp4gNkJeEe1rBp85oHkoGLMzwWQrfZWtFaIfuZE5YTMA1MkUps8 aa4iV6mxAgZJBY9N1x9jkCF8TBOrljliXOLRjnw3uF5cSZDxvFOWsibLZQBN0EZhIc Enn+hS99RpT6HYymrZEbTT26zDia3494/Ex+2pg8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Avraham Stern , Luca Coelho , Sasha Levin Subject: [PATCH 5.16 0684/1039] iwlwifi: mvm: fix AUX ROC removal Date: Mon, 24 Jan 2022 19:41:13 +0100 Message-Id: <20220124184148.345357324@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184125.121143506@linuxfoundation.org> References: <20220124184125.121143506@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Avraham Stern [ Upstream commit f0337cb48f3bf5f0bbccc985d8a0a8c4aa4934b7 ] When IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD is set, removing a time event always tries to cancel session protection. However, AUX ROC does not use session protection so it was never removed. As a result, if the driver tries to allocate another AUX ROC event right after cancelling the first one, it will fail with a warning. In addition, the time event data passed to iwl_mvm_remove_aux_roc_te() is incorrect. Fix it. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho Link: https://lore.kernel.org/r/iwlwifi.20211219132536.915e1f69f062.Id837e917f1c2beaca7c1eb33333d622548918a76@changeid Signed-off-by: Luca Coelho Signed-off-by: Sasha Levin --- drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c index b8c645b9880fc..ab06dcda1462a 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -696,11 +696,14 @@ static bool __iwl_mvm_remove_time_event(struct iwl_mvm *mvm, iwl_mvm_te_clear_data(mvm, te_data); spin_unlock_bh(&mvm->time_event_lock); - /* When session protection is supported, the te_data->id field + /* When session protection is used, the te_data->id field * is reused to save session protection's configuration. + * For AUX ROC, HOT_SPOT_CMD is used and the te_data->id field is set + * to HOT_SPOT_CMD. */ if (fw_has_capa(&mvm->fw->ucode_capa, - IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD)) { + IWL_UCODE_TLV_CAPA_SESSION_PROT_CMD) && + id != HOT_SPOT_CMD) { if (mvmvif && id < SESSION_PROTECT_CONF_MAX_ID) { /* Session protection is still ongoing. Cancel it */ iwl_mvm_cancel_session_protection(mvm, mvmvif, id); @@ -1036,7 +1039,7 @@ void iwl_mvm_stop_roc(struct iwl_mvm *mvm, struct ieee80211_vif *vif) iwl_mvm_p2p_roc_finished(mvm); } else { iwl_mvm_remove_aux_roc_te(mvm, mvmvif, - &mvmvif->time_event_data); + &mvmvif->hs_time_event_data); iwl_mvm_roc_finished(mvm); } -- 2.34.1