Commit 0b67ab5d authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: trace full frames with TX status request



If upper layers requested a TX status, then the frames are
more important, so trace frames in that case.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20231022173519.0dfb60a2eaec.I3c3e46ed0eb05700a4d05d293f80d727354a402f@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 658939fc
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3,17 +3,19 @@
 *
 * Copyright(c) 2009 - 2014 Intel Corporation. All rights reserved.
 * Copyright(C) 2016        Intel Deutschland GmbH
 * Copyright(c) 2018        Intel Corporation
 * Copyright(c) 2018, 2023  Intel Corporation
 *****************************************************************************/

#ifndef __IWLWIFI_DEVICE_TRACE
#include <linux/skbuff.h>
#include <linux/ieee80211.h>
#include <net/cfg80211.h>
#include <net/mac80211.h>
#include "iwl-trans.h"
#if !defined(__IWLWIFI_DEVICE_TRACE)
static inline bool iwl_trace_data(struct sk_buff *skb)
{
	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
	struct ieee80211_hdr *hdr = (void *)skb->data;
	__le16 fc = hdr->frame_control;
	int offs = 24; /* start with normal header length */
@@ -21,6 +23,10 @@ static inline bool iwl_trace_data(struct sk_buff *skb)
	if (!ieee80211_is_data(fc))
		return false;

	/* If upper layers wanted TX status it's an important frame */
	if (info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS)
		return false;

	/* Try to determine if the frame is EAPOL. This might have false
	 * positives (if there's no RFC 1042 header and we compare to some
	 * payload instead) but since we're only doing tracing that's not