Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4374410pxf; Tue, 30 Mar 2021 06:28:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyfXOGrt+5vKPuTHN3C94TwtuBw2AzNxtTeXFBLUB8VCik6QMBzq3P8Qzq0h/brPvwd+loT X-Received: by 2002:a05:6402:4314:: with SMTP id m20mr32917803edc.5.1617110901283; Tue, 30 Mar 2021 06:28:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617110901; cv=none; d=google.com; s=arc-20160816; b=KO/52lg3sYN0SSto3ieM3syLb4xlrGLortYkXLFERrKF+pHFM0EGRu28e0FR6FS9Nh Pz/l3zbbwGhloVDPoln9aTS9CtXQRMYgJEyEjm2W4twqti/IEwVqCREoLg3lEFBIgILp zhdH6m9Pr/DYX2Svsy6TVNZbv5E21r537vXiL0CyrBr9ozNUswXqPKkECC8WulNhN1C/ PfJz6rBg54RiH74aV2ur3RgLM024MOz61EHjTx4P1p4/pgNX8ZQASBsS8XAd4a4+HVQv b3qaf2razPg7MlbfZ4Lzs+kxRunSETlLCw8If5n7fAzl04SCLIW2KSB+ILBFWj49VXm7 JwMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from; bh=4V3BOEv1MYgTGIIR3xxkzwUvrSVE6L+uMM3xJfYHlLQ=; b=tURMwj7IM/vYAZTAyH8nbezIPKg0caHgP86CxFpfWR0jZWHle0PLy03x6Vfk+Z/14C OVpw6d8KpOx3iFFxLbBnMSgV7S8SRsJchIKAVuS+Oskac/Q4mKA+TcsBieClZgt+vX3A 03ZYN6v/f6b/T+mFoqExcCqYfo6uoInhs1qdR+MUnQby0KOrA+Gu3pp929aKAHpjRJpE yJ6yqjyFX++7C6fkdqIKFfzIuRuPZkoNMLlTixyEGw2dWF5HyEa96hsMBYNamEcVF+Ts m5uNI4azyk9KZ8U9urlR3tEUf6osNMN7pq9GkaWn9S/nxnmvbMe4p2mbJrEg/T6hQ2AF j8rA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t3si14615231edq.578.2021.03.30.06.27.57; Tue, 30 Mar 2021 06:28:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231803AbhC3NZI (ORCPT + 99 others); Tue, 30 Mar 2021 09:25:08 -0400 Received: from paleale.coelho.fi ([176.9.41.70]:43588 "EHLO farmhouse.coelho.fi" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S231966AbhC3NZG (ORCPT ); Tue, 30 Mar 2021 09:25:06 -0400 Received: from 91-156-6-193.elisa-laajakaista.fi ([91.156.6.193] helo=kveik.ger.corp.intel.com) by farmhouse.coelho.fi with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lREMe-0007fg-UX; Tue, 30 Mar 2021 16:25:02 +0300 From: Luca Coelho To: kvalo@codeaurora.org Cc: linux-wireless@vger.kernel.org Date: Tue, 30 Mar 2021 16:24:49 +0300 Message-Id: X-Mailer: git-send-email 2.31.0 In-Reply-To: <20210330132500.468321-1-luca@coelho.fi> References: <20210330132500.468321-1-luca@coelho.fi> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on farmhouse.coelho.fi X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00, TVD_RCVD_IP autolearn=ham autolearn_force=no version=3.4.5-pre1 Subject: [PATCH 01/12] iwlwifi: mvm: enable TX on new CSA channel before disconnecting Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org From: Sara Sharon When moving to the new channel, we block TX until we hear the first beacon. if it is not heard, we proceed to disconnect. Since TX is blocked (without mac80211 being aware of it) the frame is stuck, resulting with queue hang. Instead, reenable TX before reporting on the connection loss. As we are on the new channel, there is no problem with that, even if the original CSA had quiet mode. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho --- drivers/net/wireless/intel/iwlwifi/mvm/time-event.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c index 0b012f8c9eb2..1418a6438635 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -151,6 +151,16 @@ static bool iwl_mvm_te_check_disconnect(struct iwl_mvm *mvm, if (errmsg) IWL_ERR(mvm, "%s\n", errmsg); + if (mvmvif->csa_bcn_pending) { + struct iwl_mvm_sta *mvmsta; + + rcu_read_lock(); + mvmsta = iwl_mvm_sta_from_staid_rcu(mvm, mvmvif->ap_sta_id); + if (!WARN_ON(!mvmsta)) + iwl_mvm_sta_modify_disable_tx(mvm, mvmsta, false); + rcu_read_unlock(); + } + iwl_mvm_connection_loss(mvm, vif, errmsg); return true; } -- 2.31.0