mac80211: implement chanctx reservation
authorLuciano Coelho <luciano.coelho@intel.com>
Wed, 30 Oct 2013 11:09:39 +0000 (13:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 9 Apr 2014 08:55:54 +0000 (10:55 +0200)
commit11335a550b6ac924634f0b77b7a84b6c4f3d8477
tree1965611691bbdcba3b4ee6a5dc97c5128ae36972
parent77eeba974fad3046d48697f004de43cae3706927
mac80211: implement chanctx reservation

In order to support channel switch with multiple vifs and multiple
contexts, we implement a concept of channel context reservation.  This
allows us to reserve a channel context to be used later.

The reservation functionality is not tied directly to channel switch
and may be used in other situations (eg. reserving a channel context
during IBSS join).

We first check if an existing compatible context exists and if it
does, we reserve it.  If there is no compatible context we create a
new one and reserve it.

Additionally, split ieee80211_vif_copy_chanctx_to_vlans() so we can
call it while already holding the chanctx mutex.

Signed-off-by: Luciano Coelho <luciano.coelho@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/chan.c
net/mac80211/ieee80211_i.h