Commit 5462bcd8 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Luca Coelho

iwlwifi: fix tracing when tx only is enabled

iwl_trace_data is somewhat confusing. It returns a bool
that tells if the payload of the skb should be added to
the tx_data event. If it returns false, then the payload
of the skb is added to the tx event.

The purpose is to be able to start tracing with
-e iwlwifi
and record non-data packets only which saves bandwidth.

Since EAPOLs are important, seldom and not real data
packet (despite being WiFi data packets), they are
included in tx event and thus iwl_trace_data returns false
on those. This last part was buggy, and because of that,
all the data packets were included in the tx event.

Fix that.

Fixes: 0c4cb731 ("iwlwifi: tracing: decouple from mac80211")
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 2388bd7b
...@@ -55,8 +55,8 @@ static inline bool iwl_trace_data(struct sk_buff *skb) ...@@ -55,8 +55,8 @@ static inline bool iwl_trace_data(struct sk_buff *skb)
/* also account for the RFC 1042 header, of course */ /* also account for the RFC 1042 header, of course */
offs += 6; offs += 6;
return skb->len > offs + 2 && return skb->len <= offs + 2 ||
*(__be16 *)(skb->data + offs) == cpu_to_be16(ETH_P_PAE); *(__be16 *)(skb->data + offs) != cpu_to_be16(ETH_P_PAE);
} }
static inline size_t iwl_rx_trace_len(const struct iwl_trans *trans, static inline size_t iwl_rx_trace_len(const struct iwl_trans *trans,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment