Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1892214pxa; Mon, 3 Aug 2020 01:41:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmaaWn2+qcYj6eL4x2ev7FgT9epBZPgqWylHOevjDWs3riqGPD1smTtMdeM+pPtM5n1a6d X-Received: by 2002:aa7:d585:: with SMTP id r5mr2824695edq.30.1596444071251; Mon, 03 Aug 2020 01:41:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596444071; cv=none; d=google.com; s=arc-20160816; b=suMaoSYPNO9JXQriMDwaDjH8Gu0hGPVu9nm4pwRG7VLx25SU+p7Tu3I+0UVy3GDaiT i8jo7Q41Pgd0HVKN/5kpvJt19WOMEISrI15maFeKFiig3BRN92p7dub8ktTV0OTSL4yY /ruE9OgcuqTAQ0XlOPFvmWV3pm3kqA2Dy9US0f4bwIS9LGqx+dDrSApgt5e0GC/gZNBE nbEBTt0OFmCRAbDkGIqr1tPLzdf0vVu1rB/CbjrIOsk7l8PqkQRbpH3qIxdFtAYrRrdH u26SZQIleqIWynJR/bpP/bX3uw0nltlOdA35RT5otD17OA1ONG4i6n6pG5wrMpyML4RY GoXQ== 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=r9woErE8X47LtiUo1AAyLTCj1+3bVIuCJKzpqb7YgE7pW69Lki69zIrnUu62qLbfLu Z7Jo15Kjf5jWMBhu/TCvhkkto7py6l8/qf6afwc2i3hEVt8kceHws7Nf48reVLwwRJJB opVW/Kvf7/7Kzkt1aNQYcoZmBTQejLEaQdJL5y1PEal2oAhjPZGa/AUfH8p54KyFD9Ns 4/S+XLONaSPJ9dn2B6nO66SK0ZaGLoVqwt5ugT6Y461BK6Dz9KcjONr6udv5pidG9eXj tTkFBuB/xYtCXNN2RJ3+zx++lFl+4c8j3CimyC+hdK+yzaJZa8jogdVm3bafi1hFSJ+8 DAeA== 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 g3si616752edr.531.2020.08.03.01.40.44; Mon, 03 Aug 2020 01:41:11 -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 S1726197AbgHCIjx (ORCPT + 99 others); Mon, 3 Aug 2020 04:39:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725806AbgHCIjx (ORCPT ); Mon, 3 Aug 2020 04:39:53 -0400 Received: from nbd.name (nbd.name [IPv6:2a01:4f8:221:3d45::2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E7AFC06174A for ; Mon, 3 Aug 2020 01:39:53 -0700 (PDT) Received: from [134.101.163.132] (helo=bertha9.fritz.box) by ds12 with esmtpa (Exim 4.89) (envelope-from ) id 1k2W0a-0001dx-IV; Mon, 03 Aug 2020 10:39:48 +0200 From: John Crispin To: Kalle Valo Cc: ath11k@lists.infradead.org, linux-wireless@vger.kernel.org, John Crispin Subject: [PATCH V5 1/2] ath11k: switch to using ieee80211_tx_status_ext() Date: Mon, 3 Aug 2020 10:39:41 +0200 Message-Id: <20200803083942.128767-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