On Thu, 2012-12-13 at 14:58 +0100, Simon Wunderlich wrote: > +++ b/include/net/cfg80211.h > @@ -133,6 +133,11 @@ enum ieee80211_channel_flags { > * to enable this, this is useful only on 5 GHz band. > * @orig_mag: internal use > * @orig_mpwr: internal use > + * @radar_detect_timeout: this timeout indicates the end of the channel > + * availability check for radar channels (in jiffies), only after this > + * period the user may initiate the tx on the channel. > + * @cac_type: indicates that channel availability check is started for this > + * channel type. > */ > struct ieee80211_channel { > enum ieee80211_band band; > @@ -145,6 +150,9 @@ struct ieee80211_channel { > bool beacon_found; > u32 orig_flags; > int orig_mag, orig_mpwr; > + unsigned long radar_detect_timeout; > + enum nl80211_channel_type cac_type; > + bool cac_started; Since we lock a channel, all of these should probably move to the rdev/wiphy struct, I think. And then the code checking channel contexts needs to be extended to not allow another while a channel context is in use: > + mutex_lock(&rdev->devlist_mtx); > + err = cfg80211_can_use_chan(rdev, wdev, chandef.chan, > + CHAN_MODE_SINGLE_ONLY); > + mutex_unlock(&rdev->devlist_mtx); This only does a spot check, keeping state needs to be handled separately. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html