Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp5128927ybh; Wed, 7 Aug 2019 01:00:29 -0700 (PDT) X-Google-Smtp-Source: APXvYqzlDQzsudtiNe8c7d2To8vWoDYqAlA0XOQ7q7CGqkcJ/uOcqklN0PgMiyUjTAFVJlDJSbsR X-Received: by 2002:a17:90a:bd8c:: with SMTP id z12mr7272116pjr.60.1565164828917; Wed, 07 Aug 2019 01:00:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565164828; cv=none; d=google.com; s=arc-20160816; b=gmnJ7y17iEn70o1JwTEnId9VaXORmMhPlnA9iceRRP5HpURRu+RZhBLV6/FMqqW/da VWqKnAjVemQwNPUK3IMuFSonJNWMKZtE3n37ETrpCQ0EC52tpFae2aoIVW0GI88nqP9k ICXuMr+p0uBE2HjYkhmNFqLeAgxQ/ffcfIKxlNscXWlJduSWRYIykluDBuWznk/ukLGZ e9axldIeiqK2VQgX1FRSxKCAcxJPrOtfW1HWj/4bn+iH3OQWkn2LLKeZHMOxnfNnMan1 wNP782+MxB4A3KBZEhT4MR9v0Naa2Rr20tEv/6psCUqWP/GLcx2p977dHBjb9fBnIKYE Qq5A== 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=NSFY4mgPZR+lBmDvOUmmMjKXDZ/5wybxwq2+6tavVm4=; b=vdCehXTbeM5lfIxwN4wH77Fw2WSlQqMMngQsP8/Ujpf+/1uI6LKqmsL2tmdBV2HuQ9 fe//uxJGE3Ob/qXkM2BdlGSXTCUnysF4qg5aQjOBAJzDJA/rr/FaXGEiPILk9ihtGeL7 lea3SIEMrLmT5wIdiGUu4i1x4UH/9jIneuuhENYQlg+atXX1CZB9xU8px/GOWWDr8pT9 jw4sN9uz+I7Fjt5KpAy9Udg9E4uSgsOdpfYOT2TzoMTxjsmuMZ+fLs9SKjr98rNpZB5g vOrkBjBNTGgs9lsdCiy42qZ/w8YpvJZIx815CiLGDk4UbC0OrjCES7x5vgeFhjpbSCEW jLWQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-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 t20si16588947pjr.107.2019.08.07.01.00.04; Wed, 07 Aug 2019 01:00:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728227AbfHGIAA (ORCPT + 99 others); Wed, 7 Aug 2019 04:00:00 -0400 Received: from nbd.name ([46.4.11.11]:33930 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728202AbfHGIAA (ORCPT ); Wed, 7 Aug 2019 04:00:00 -0400 Received: from pd95fd65c.dip0.t-ipconnect.de ([217.95.214.92] helo=bertha.fritz.box) by ds12 with esmtpa (Exim 4.89) (envelope-from ) id 1hvGrW-00038j-TG; Wed, 07 Aug 2019 09:59:59 +0200 From: John Crispin To: Johannes Berg Cc: linux-wireless@vger.kernel.org, John Crispin Subject: [PATCH 1/4] mac80211: fix TX legacy rate reporting when tx_status_ext is used Date: Wed, 7 Aug 2019 09:59:46 +0200 Message-Id: <20190807075949.32414-1-john@phrozen.org> X-Mailer: git-send-email 2.20.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 The RX Radiotap header length was not calculated properly when reporting legacy rates using tx_status_ext. fixes commit 3d07ffcaf320 ("mac80211: add struct ieee80211_tx_status support to ieee80211_add_tx_radiotap_header") Signed-off-by: John Crispin --- net/mac80211/status.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/net/mac80211/status.c b/net/mac80211/status.c index f03aa8924d23..f984943cdabd 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -260,9 +260,15 @@ static int ieee80211_tx_radiotap_len(struct ieee80211_tx_info *info, int len = sizeof(struct ieee80211_radiotap_header); /* IEEE80211_RADIOTAP_RATE rate */ - if (info->status.rates[0].idx >= 0 && - !(info->status.rates[0].flags & (IEEE80211_TX_RC_MCS | - IEEE80211_TX_RC_VHT_MCS))) + if (status && status->rate && !(status->rate->flags & + (RATE_INFO_FLAGS_MCS | + RATE_INFO_FLAGS_60G | + RATE_INFO_FLAGS_VHT_MCS | + RATE_INFO_FLAGS_HE_MCS))) + len += 2; + else if (info->status.rates[0].idx >= 0 && + !(info->status.rates[0].flags & + (IEEE80211_TX_RC_MCS | IEEE80211_TX_RC_VHT_MCS))) len += 2; /* IEEE80211_RADIOTAP_TX_FLAGS */ -- 2.20.1