mt76_change_chanctx() calls mt76_phy_update_channel() which switches
the hardware channel. If ROC is active on the same phy, this switches
away from the ROC channel and clears offchannel, but leaves ROC state
intact. Mac80211 still thinks the phy is on the ROC channel.
Abort any active ROC before proceeding, matching the pattern already
used in add, remove, assign, unassign, and switch chanctx functions.
Link: https://patch.msgid.link/20260309060730.87840-5-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
IEEE80211_CHANCTX_CHANGE_RADAR)))
return;
+ if (phy->roc_vif)
+ mt76_abort_roc(phy);
+
cancel_delayed_work_sync(&phy->mac_work);
mutex_lock(&dev->mutex);