On Wed, May 22, 2019 at 2:38 AM Daniel Drake <drake@xxxxxxxxxxxx> wrote: > > On Fri, May 10, 2019 at 2:37 AM Chris Chiu <chiu@xxxxxxxxxxxx> wrote: > > I've verified that multiple virtual interface can not work simultaneously in > > STA mode. I assigned different mac address for different vifs, I can only > > bring only one interface up. If I want to bring the second vif up, it always > > complains "SIOCSIFFLAGS: Device or resource busy". > > Interesting. Can you go deeper into that so that we can be more > confident of this limitation? > > ieee80211_open() is the starting point. > ieee80211_check_concurrent_iface() is one candidate to generate -EBUSY > but from inspection, I don't think that's happening in this case, > perhaps you can keep following through in order to figure out which > part of the code is not allowing the 2nd STA interface to come up. > > Daniel The -EBUSY is returned by the ieee80211_check_combinations() in the ieee80211_check_concurrent_iface() function which is invoked each time doing ieee80211_open(). The ieee80211_check_combinations() returns the -EBUSY because of cfg80211_check_combinations() will iterate all interfaces of different types then checks the combination is valid or not, which in this case the number of interface combination accumulated by cfg80211_iter_sum_ifcombos is 0 when I'm trying to bring up the second station interface. Chris