summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2026-03-03 17:26:17 +0300
committerJohannes Berg <johannes.berg@intel.com>2026-03-13 09:11:14 +0300
commitba9d121f85771cce38012d1bee59d7399250e4a5 (patch)
treeaf6d9c8e414826325d5789c5119fe7d5b31b18a6
parentf2514ff78855c45fe93c82bdb45f7609dd70c637 (diff)
downloadlinux-ba9d121f85771cce38012d1bee59d7399250e4a5.tar.xz
wifi: mac80211: refactor chandef tracing macros
We don't need to duplicate the macros, just make a generic one that gets the name prefix to be used, and use that to create the others. While at it, add the puncturing bitmap to the trace and simplify the ternary expressions. Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20260303152641.ca32d70055f8.I8138a31ceb75715d928d807554288baccc33cd8c@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/trace.h100
1 files changed, 41 insertions, 59 deletions
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index c04d4547e8f4..1f0c07eaad1b 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -2,7 +2,7 @@
/*
* Portions of this file
* Copyright(c) 2016-2017 Intel Deutschland GmbH
- * Copyright (C) 2018 - 2024 Intel Corporation
+ * Copyright (C) 2018-2024, 2026 Intel Corporation
*/
#if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ)
@@ -37,64 +37,46 @@
#define VIF_PR_FMT " vif:%s(%d%s)"
#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : ""
-#define CHANDEF_ENTRY __field(u32, control_freq) \
- __field(u32, freq_offset) \
- __field(u32, chan_width) \
- __field(u32, center_freq1) \
- __field(u32, freq1_offset) \
- __field(u32, center_freq2)
-#define CHANDEF_ASSIGN(c) \
- __entry->control_freq = (c) ? ((c)->chan ? (c)->chan->center_freq : 0) : 0; \
- __entry->freq_offset = (c) ? ((c)->chan ? (c)->chan->freq_offset : 0) : 0; \
- __entry->chan_width = (c) ? (c)->width : 0; \
- __entry->center_freq1 = (c) ? (c)->center_freq1 : 0; \
- __entry->freq1_offset = (c) ? (c)->freq1_offset : 0; \
- __entry->center_freq2 = (c) ? (c)->center_freq2 : 0;
-#define CHANDEF_PR_FMT " chandef(%d.%03d MHz,width:%d,center: %d.%03d/%d MHz)"
-#define CHANDEF_PR_ARG __entry->control_freq, __entry->freq_offset, __entry->chan_width, \
- __entry->center_freq1, __entry->freq1_offset, __entry->center_freq2
-
-#define MIN_CHANDEF_ENTRY \
- __field(u32, min_control_freq) \
- __field(u32, min_freq_offset) \
- __field(u32, min_chan_width) \
- __field(u32, min_center_freq1) \
- __field(u32, min_freq1_offset) \
- __field(u32, min_center_freq2)
-
-#define MIN_CHANDEF_ASSIGN(c) \
- __entry->min_control_freq = (c)->chan ? (c)->chan->center_freq : 0; \
- __entry->min_freq_offset = (c)->chan ? (c)->chan->freq_offset : 0; \
- __entry->min_chan_width = (c)->width; \
- __entry->min_center_freq1 = (c)->center_freq1; \
- __entry->min_freq1_offset = (c)->freq1_offset; \
- __entry->min_center_freq2 = (c)->center_freq2;
-#define MIN_CHANDEF_PR_FMT " mindef(%d.%03d MHz,width:%d,center: %d.%03d/%d MHz)"
-#define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_freq_offset, \
- __entry->min_chan_width, \
- __entry->min_center_freq1, __entry->min_freq1_offset, \
- __entry->min_center_freq2
-
-#define AP_CHANDEF_ENTRY \
- __field(u32, ap_control_freq) \
- __field(u32, ap_freq_offset) \
- __field(u32, ap_chan_width) \
- __field(u32, ap_center_freq1) \
- __field(u32, ap_freq1_offset) \
- __field(u32, ap_center_freq2)
-
-#define AP_CHANDEF_ASSIGN(c) \
- __entry->ap_control_freq = (c)->chan ? (c)->chan->center_freq : 0;\
- __entry->ap_freq_offset = (c)->chan ? (c)->chan->freq_offset : 0;\
- __entry->ap_chan_width = (c)->chan ? (c)->width : 0; \
- __entry->ap_center_freq1 = (c)->chan ? (c)->center_freq1 : 0; \
- __entry->ap_freq1_offset = (c)->chan ? (c)->freq1_offset : 0; \
- __entry->ap_center_freq2 = (c)->chan ? (c)->center_freq2 : 0;
-#define AP_CHANDEF_PR_FMT " ap(%d.%03d MHz,width:%d,center: %d.%03d/%d MHz)"
-#define AP_CHANDEF_PR_ARG __entry->ap_control_freq, __entry->ap_freq_offset, \
- __entry->ap_chan_width, \
- __entry->ap_center_freq1, __entry->ap_freq1_offset, \
- __entry->ap_center_freq2
+#define __CHANDEF_ENTRY(n) \
+ __field(u32, n##control_freq) \
+ __field(u32, n##freq_offset) \
+ __field(u32, n##chan_width) \
+ __field(u32, n##center_freq1) \
+ __field(u32, n##freq1_offset) \
+ __field(u32, n##center_freq2) \
+ __field(u16, n##punctured)
+#define __CHANDEF_ASSIGN(n, c) \
+ __entry->n##control_freq = (c) && (c)->chan ? \
+ (c)->chan->center_freq : 0; \
+ __entry->n##freq_offset = (c) && (c)->chan ? \
+ (c)->chan->freq_offset : 0; \
+ __entry->n##chan_width = (c) ? (c)->width : 0; \
+ __entry->n##center_freq1 = (c) ? (c)->center_freq1 : 0; \
+ __entry->n##freq1_offset = (c) ? (c)->freq1_offset : 0; \
+ __entry->n##center_freq2 = (c) ? (c)->center_freq2 : 0; \
+ __entry->n##punctured = (c) ? (c)->punctured : 0;
+#define __CHANDEF_PR_FMT(n) \
+ " " #n "(%d.%03d MHz,width:%d,center: %d.%03d/%d MHz, punct:0x%x)"
+#define __CHANDEF_PR_ARG(n) \
+ __entry->n##control_freq, __entry->n##freq_offset, \
+ __entry->n##chan_width, __entry->n##center_freq1, \
+ __entry->n##freq1_offset, __entry->n##center_freq2, \
+ __entry->n##punctured
+
+#define CHANDEF_ENTRY __CHANDEF_ENTRY()
+#define CHANDEF_ASSIGN(c) __CHANDEF_ASSIGN(, c)
+#define CHANDEF_PR_FMT __CHANDEF_PR_FMT(chandef)
+#define CHANDEF_PR_ARG __CHANDEF_PR_ARG()
+
+#define MIN_CHANDEF_ENTRY __CHANDEF_ENTRY(min)
+#define MIN_CHANDEF_ASSIGN(c) __CHANDEF_ASSIGN(min, c)
+#define MIN_CHANDEF_PR_FMT __CHANDEF_PR_FMT(mindef)
+#define MIN_CHANDEF_PR_ARG __CHANDEF_PR_ARG(min)
+
+#define AP_CHANDEF_ENTRY __CHANDEF_ENTRY(ap)
+#define AP_CHANDEF_ASSIGN(c) __CHANDEF_ASSIGN(ap, c)
+#define AP_CHANDEF_PR_FMT __CHANDEF_PR_FMT(ap)
+#define AP_CHANDEF_PR_ARG __CHANDEF_PR_ARG(ap)
#define CHANCTX_ENTRY CHANDEF_ENTRY \
MIN_CHANDEF_ENTRY \