Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mac80211: allow null chandef in tracing

In TDLS channel-switch operations the chandef can sometimes be NULL.
Avoid an oops in the trace code for these cases and just print a
chandef full of zeros.

Cc: stable@vger.kernel.org
Fixes: a7a6bdd0670fe ("mac80211: introduce TDLS channel switch ops")
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>

authored by

Arik Nemtsov and committed by
Johannes Berg
254d3dfe 4baf6bea

+5 -5
+5 -5
net/mac80211/trace.h
··· 33 33 __field(u32, chan_width) \ 34 34 __field(u32, center_freq1) \ 35 35 __field(u32, center_freq2) 36 - #define CHANDEF_ASSIGN(c) \ 37 - __entry->control_freq = (c)->chan ? (c)->chan->center_freq : 0; \ 38 - __entry->chan_width = (c)->width; \ 39 - __entry->center_freq1 = (c)->center_freq1; \ 40 - __entry->center_freq2 = (c)->center_freq2; 36 + #define CHANDEF_ASSIGN(c) \ 37 + __entry->control_freq = (c) ? ((c)->chan ? (c)->chan->center_freq : 0) : 0; \ 38 + __entry->chan_width = (c) ? (c)->width : 0; \ 39 + __entry->center_freq1 = (c) ? (c)->center_freq1 : 0; \ 40 + __entry->center_freq2 = (c) ? (c)->center_freq2 : 0; 41 41 #define CHANDEF_PR_FMT " control:%d MHz width:%d center: %d/%d MHz" 42 42 #define CHANDEF_PR_ARG __entry->control_freq, __entry->chan_width, \ 43 43 __entry->center_freq1, __entry->center_freq2