summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/net/cfg80211.h3
-rw-r--r--net/wireless/nl80211.c1
-rw-r--r--net/wireless/trace.h7
3 files changed, 9 insertions, 2 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index e27ed2307cdb..d4c83ea3213d 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1543,6 +1543,8 @@ struct cfg80211_ap_update {
* @radar_required: whether radar detection is required on the new channel
* @block_tx: whether transmissions should be blocked while changing
* @count: number of beacons until switch
+ * @link_id: defines the link on which channel switch is expected during
+ * MLO. 0 in case of non-MLO.
*/
struct cfg80211_csa_settings {
struct cfg80211_chan_def chandef;
@@ -1555,6 +1557,7 @@ struct cfg80211_csa_settings {
bool radar_required;
bool block_tx;
u8 count;
+ u8 link_id;
};
/**
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index b533412ad1e0..e1106ae35e21 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -10222,6 +10222,7 @@ skip_beacons:
if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
params.block_tx = true;
+ params.link_id = link_id;
err = rdev_channel_switch(rdev, dev, &params);
free:
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index ae5e585b6863..194ea2471717 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -2332,6 +2332,7 @@ TRACE_EVENT(rdev_channel_switch,
__field(u8, count)
__dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon)
__dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp)
+ __field(u8, link_id)
),
TP_fast_assign(
WIPHY_ASSIGN;
@@ -2349,11 +2350,13 @@ TRACE_EVENT(rdev_channel_switch,
memcpy(__get_dynamic_array(pres_ofs),
params->counter_offsets_presp,
params->n_counter_offsets_presp * sizeof(u16));
+ __entry->link_id = params->link_id;
),
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
- ", block_tx: %d, count: %u, radar_required: %d",
+ ", block_tx: %d, count: %u, radar_required: %d, link_id: %d",
WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
- __entry->block_tx, __entry->count, __entry->radar_required)
+ __entry->block_tx, __entry->count, __entry->radar_required,
+ __entry->link_id)
);
TRACE_EVENT(rdev_set_qos_map,