Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp128861ybc; Mon, 18 Nov 2019 21:48:31 -0800 (PST) X-Google-Smtp-Source: APXvYqyOAbypz4f9TeKbIiRbB81uOTBt1MmfWgbh2gfYZa5iN4CClMCDTHRSiy3ctkOgdypsayzX X-Received: by 2002:a17:906:fad1:: with SMTP id lu17mr32522318ejb.24.1574142511510; Mon, 18 Nov 2019 21:48:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574142511; cv=none; d=google.com; s=arc-20160816; b=WkGxwvkvIWIw8pIRcyaeTMMiuzeC5+EpdFkpRimPP24ZVtzVn4EjywnwdNYvG1zY8m cDCA+1eOrZdLEqoGaiH29cgCGMATL5FYrT4xCMYLzT6QdR11z7WCkW6px9BTDZuuzEVI +Ty/bNZtiDwyoo+ItQjzZO08A2gkTRDCzoVy7l599oJrs5thvvBb7lNj1269Nhv0azP/ tHuxSx+83oyDr0bor2QOwBcfbyoENWoxPGWlH0S/E2T7OkR1ztRrxUpHsr3cFlnnzuII rzi/zVUjfPbglc34uksr6QG/x3Ya9HLgnO5nJW1jEz/lvkQBDazk4035CzY3mivuoPbM Xkkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ssNkOIZZtKcDM4U6zTgxgR80iBgsOFW7lBUri3CXdww=; b=ZaHHn6ZaNbf0KAXstb1HKMNYTGnntCgJu/fgtD9fIoQIdMPcB1ONeyOOzfAkArV8wB tAGjFRERn++LR7JUbr8fl7XhrZ3qCX6KzdcM7wbrWaxuHN2nJ6BZ3V8uxp+zAAoyGXfV 8gzxRVPms9AvlyMFUwYWEXF+zz2mg3X+/VgKd3+fdqQe/jXQym+8L/0o1aybxL+TKu7B 9lo6IGpPicvYTgDp+yTo66iKLWG2VzsYtJ5RzH4ZcFHPrdUtgtaV2G4eejWWd1lz9t+Q aXhtUZyq748lNhv/eOujphm0WqadOVUS7qUfyzFuXzMhCbsEO2BnxJmQvy8fPhtZrh9O SAwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SVRSwZfR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k14si12253876eji.255.2019.11.18.21.48.07; Mon, 18 Nov 2019 21:48:31 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=SVRSwZfR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730923AbfKSFrP (ORCPT + 99 others); Tue, 19 Nov 2019 00:47:15 -0500 Received: from mail.kernel.org ([198.145.29.99]:43508 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731218AbfKSFrN (ORCPT ); Tue, 19 Nov 2019 00:47:13 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C1BA32071B; Tue, 19 Nov 2019 05:47:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574142432; bh=fnOLfxFlHzYCp5VPklcq0rHg+03gyg7GdwnsSyAYVBc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SVRSwZfRwHEotQQyEXoHSdpe1JATak6gc3GJg8VML4WYnEwIzHN5M6ws/A1YueYNH N5+zsnXuGhkycrvA7yDBBaitXPkowwTibEUQmZfH+eGgj+6jm0X6oIlL1JWtaq2hfD WxfSvTaPdwMUVMvX9/uqMXJmsjWHeu/4GjO/RcmQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Felix Fietkau , Kalle Valo , Sasha Levin Subject: [PATCH 4.14 042/239] ath9k: fix tx99 with monitor mode interface Date: Tue, 19 Nov 2019 06:17:22 +0100 Message-Id: <20191119051305.721161688@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191119051255.850204959@linuxfoundation.org> References: <20191119051255.850204959@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Felix Fietkau [ Upstream commit d9c52fd17cb483bd8a470398afcb79f86c1b77c8 ] Tx99 is typically configured via a monitor mode interface, which does not get added to the driver as a vif. Since the code currently expects a configured virtual interface for tx99, enabling tx99 via debugfs fails. Since the vif is not needed anyway, remove all checks for it. Signed-off-by: Felix Fietkau [kvalo@codeaurora.org: s/CPTCFG/CONFIG/] Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin --- drivers/net/wireless/ath/ath9k/ath9k.h | 1 - drivers/net/wireless/ath/ath9k/main.c | 12 +++--------- drivers/net/wireless/ath/ath9k/tx99.c | 9 --------- drivers/net/wireless/ath/ath9k/xmit.c | 2 +- 4 files changed, 4 insertions(+), 20 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index f9339b5c3624b..db2b119199d7b 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h @@ -1074,7 +1074,6 @@ struct ath_softc { struct ath_spec_scan_priv spec_priv; - struct ieee80211_vif *tx99_vif; struct sk_buff *tx99_skb; bool tx99_state; s16 tx99_power; diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 8b4ac7f0a09b7..055f869516804 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -1250,15 +1250,10 @@ static int ath9k_add_interface(struct ieee80211_hw *hw, struct ath_vif *avp = (void *)vif->drv_priv; struct ath_node *an = &avp->mcast_node; - mutex_lock(&sc->mutex); + if (IS_ENABLED(CONFIG_ATH9K_TX99)) + return -EOPNOTSUPP; - if (IS_ENABLED(CONFIG_ATH9K_TX99)) { - if (sc->cur_chan->nvifs >= 1) { - mutex_unlock(&sc->mutex); - return -EOPNOTSUPP; - } - sc->tx99_vif = vif; - } + mutex_lock(&sc->mutex); ath_dbg(common, CONFIG, "Attach a VIF of type: %d\n", vif->type); sc->cur_chan->nvifs++; @@ -1341,7 +1336,6 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw, ath9k_p2p_remove_vif(sc, vif); sc->cur_chan->nvifs--; - sc->tx99_vif = NULL; if (!ath9k_is_chanctx_enabled()) list_del(&avp->list); diff --git a/drivers/net/wireless/ath/ath9k/tx99.c b/drivers/net/wireless/ath/ath9k/tx99.c index fe3a8263b2241..311547f532bc3 100644 --- a/drivers/net/wireless/ath/ath9k/tx99.c +++ b/drivers/net/wireless/ath/ath9k/tx99.c @@ -54,12 +54,6 @@ static struct sk_buff *ath9k_build_tx99_skb(struct ath_softc *sc) struct ieee80211_hdr *hdr; struct ieee80211_tx_info *tx_info; struct sk_buff *skb; - struct ath_vif *avp; - - if (!sc->tx99_vif) - return NULL; - - avp = (struct ath_vif *)sc->tx99_vif->drv_priv; skb = alloc_skb(len, GFP_KERNEL); if (!skb) @@ -77,14 +71,11 @@ static struct sk_buff *ath9k_build_tx99_skb(struct ath_softc *sc) memcpy(hdr->addr2, hw->wiphy->perm_addr, ETH_ALEN); memcpy(hdr->addr3, hw->wiphy->perm_addr, ETH_ALEN); - hdr->seq_ctrl |= cpu_to_le16(avp->seq_no); - tx_info = IEEE80211_SKB_CB(skb); memset(tx_info, 0, sizeof(*tx_info)); rate = &tx_info->control.rates[0]; tx_info->band = sc->cur_chan->chandef.chan->band; tx_info->flags = IEEE80211_TX_CTL_NO_ACK; - tx_info->control.vif = sc->tx99_vif; rate->count = 1; if (ah->curchan && IS_CHAN_HT(ah->curchan)) { rate->flags |= IEEE80211_TX_RC_MCS; diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 458c4f53ba5d1..a743e3535d0a8 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -2952,7 +2952,7 @@ int ath9k_tx99_send(struct ath_softc *sc, struct sk_buff *skb, return -EINVAL; } - ath_set_rates(sc->tx99_vif, NULL, bf); + ath_set_rates(NULL, NULL, bf); ath9k_hw_set_desc_link(sc->sc_ah, bf->bf_desc, bf->bf_daddr); ath9k_hw_tx99_start(sc->sc_ah, txctl->txq->axq_qnum); -- 2.20.1