Building on Michal's work for channel contexts, which I've kept as the first few patches (some of them modified for a few small fixes), this actually makes mac80211 support more than a single channel. How many channels is determined by the driver and verified by cfg80211, so mac80211 isn't much involved there. Internally, mac80211 will exclusively use channel contexts. It then has some compatibility code that will call the old config() method of the driver, if the driver isn't updated to take advantage of channel contexts. In order to support multi-channel, drivers must: * implement the five new channel context methods * be able to offload scanning * be able to offload remain-on-channel Trying to advertise multiple channels without support for channel context methods is an error, advertising multiple channels without support for scan/roc causes all scan/roc operations to always fail. So far, I've only tested this with hwsim, and even then only the backward compatibility code to make sure that it won't break drivers that aren't updated. I've tested that channel contexts are added/removed properly and that the configuration is updated in the device. I've also tested with two virtual interfaces to see that compatible channel types are still possible and result in the desired driver methods being called. Comments welcome! 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