Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2117853pxa; Mon, 3 Aug 2020 07:57:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyvhxiWZ/6+ZQP+FwABwIU5h6OzXMeQayYKIXvIiIwxzv6zP0bS7bjSdq5bvU2O2Djdk3RJ X-Received: by 2002:aa7:dc44:: with SMTP id g4mr16268262edu.273.1596466646917; Mon, 03 Aug 2020 07:57:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596466646; cv=none; d=google.com; s=arc-20160816; b=F2gs99+QX7cdTBVXEb+NXg2bb5O12IImkhf4uuOp93fg94eF64Vu97kY0EZ1ciuDlL r5VMCKJWISj2rIwF1621BDprCxwSPiNuNsJLW9Br1tFelcx+FifKC9+T9DjluD6hkq59 6a7PY9yBdhVwme155jk983pf/mmToxXfK7SmirSeY1AUJt6KbY8+c1filg8ljKpcs+C+ zDODAXwdX+2fTqmL3E6gr1oTl+tlfSm0DicVcUirct5hsUvUxJ2p/7SuJ0KQqubCIpUS 4+rJ6eCJbmCVF2mMLrR37QCBmqfk4VSnXWfnTomVYSYxVn71Zlm89aZkKKR9M+cZzl5F WD6Q== 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 :message-id:date:subject:cc:to:from; bh=/Z7bGnmx0uI75mzNXBUNb/uay/2wkxpS5UO/Z7YdgRM=; b=TCy0AGbvNYH5lZ2eJp/XGKt5ATYQWGbzpvIm1iMMlF5aJYkxOs0ua0ipZ/NPpNQ/u8 PWawIjjUtMZnbeCqaEXwRQnGBrw1S9m2sBKtbdt0J1UGpCiY6rPZJKaEQzC1B9v7ubcI J/eyORpmAPnjsTSQeHdo4VNiB1esjX4goAqNWUEofQjl2XXbJp34mlpCGlOnXEwHaEdd V4UEkEAoCDVJNHpjJZi2++nDWJbQ3cI84fhgVhDLVTogSveOlaMI4uTlSKUu675AFFZL 9nMHzIDOKVyiPD1uAfglof8DAIU5mKL7INdlHhgvVn7AVtznujS+QqxY/ybniSxzPbBs sz3w== 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 yj16si813747ejb.59.2020.08.03.07.56.56; Mon, 03 Aug 2020 07:57:26 -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 S1726807AbgHCOyz (ORCPT + 99 others); Mon, 3 Aug 2020 10:54:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36938 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725933AbgHCOyz (ORCPT ); Mon, 3 Aug 2020 10:54:55 -0400 Received: from nbd.name (nbd.name [IPv6:2a01:4f8:221:3d45::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8E38C061757 for ; Mon, 3 Aug 2020 07:54:54 -0700 (PDT) Received: from [134.101.163.132] (helo=bertha9.fritz.box) by ds12 with esmtpa (Exim 4.89) (envelope-from ) id 1k2brW-0008Fw-8U; Mon, 03 Aug 2020 16:54:50 +0200 From: John Crispin To: Kalle Valo Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org, John Crispin Subject: [PATCH V6 1/2] ath11k: switch to using ieee80211_tx_status_ext() Date: Mon, 3 Aug 2020 16:54:43 +0200 Message-Id: <20200803145444.473810-1-john@phrozen.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This allows us to pass HE rates down into the stack. Signed-off-by: John Crispin --- Changes in V5 * fix sparse warnings drivers/net/wireless/ath/ath11k/dp_tx.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/dp_tx.c b/drivers/net/wireless/ath/ath11k/dp_tx.c index 1af76775b1a8..a1f16f589b98 100644 --- a/drivers/net/wireless/ath/ath11k/dp_tx.c +++ b/drivers/net/wireless/ath/ath11k/dp_tx.c @@ -393,9 +393,12 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar, struct sk_buff *msdu, struct hal_tx_status *ts) { + struct ieee80211_tx_status status = { }; struct ath11k_base *ab = ar->ab; struct ieee80211_tx_info *info; struct ath11k_skb_cb *skb_cb; + struct ath11k_peer *peer; + struct ath11k_sta *arsta; if (WARN_ON_ONCE(ts->buf_rel_source != HAL_WBM_REL_SRC_MODULE_TQM)) { /* Must not happen */ @@ -459,12 +462,23 @@ static void ath11k_dp_tx_complete_msdu(struct ath11k *ar, ath11k_dp_tx_cache_peer_stats(ar, msdu, ts); } - /* NOTE: Tx rate status reporting. Tx completion status does not have - * necessary information (for example nss) to build the tx rate. - * Might end up reporting it out-of-band from HTT stats. - */ - ieee80211_tx_status(ar->hw, msdu); + spin_lock_bh(&ab->base_lock); + peer = ath11k_peer_find_by_id(ab, ts->peer_id); + if (peer) { + arsta = (struct ath11k_sta *)peer->sta->drv_priv; + status.sta = peer->sta; + status.skb = msdu; + status.info = info; + status.rate = &arsta->last_txrate; + } + rcu_read_unlock(); + if (peer) + ieee80211_tx_status_ext(ar->hw, &status); + else + dev_kfree_skb_any(msdu); + spin_unlock_bh(&ab->base_lock); + return; exit: rcu_read_unlock(); -- 2.25.1