Message ID | 1426143210-25635-7-git-send-email-emmanuel.grumbach@intel.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Johannes Berg |
Headers | show |
On 12 March 2015 at 07:53, Emmanuel Grumbach <emmanuel.grumbach@intel.com> wrote: > > From: Andrei Otcheretianski <andrei.otcheretianski@intel.com> > > Previously, interface combination check in mac80211 considered only > interfaces that have channel context. This wouldn't take P2P device interfaces > into account at all. Also for managed interfaces the channel context is bound > upon association and the combination check is performed when the iface is > brought up. > Fix this by counting the numbers of running interfaces instead of number of > interfaces that have channel context. > > Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> > Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> > --- > net/mac80211/util.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/mac80211/util.c b/net/mac80211/util.c > index e664b28..36d8cb2 100644 > --- a/net/mac80211/util.c > +++ b/net/mac80211/util.c > @@ -3245,7 +3245,7 @@ int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, > wdev_iter = &sdata_iter->wdev; > > if (sdata_iter == sdata || > - rcu_access_pointer(sdata_iter->vif.chanctx_conf) == NULL || > + !ieee80211_sdata_running(sdata_iter) || > local->hw.wiphy->software_iftypes & BIT(wdev_iter->iftype)) > continue; > Hello, Seems this one break IBSS case when started from wpa_supplicant at least for Intel7260 and ath10k where dedicated p2p_device is used. This is wpa_supplicant log: 1427867673.149187: nl80211: Set mode ifindex 8 iftype 1 (ADHOC) 1427867673.149225: nl80211: Mode change succeeded while interface is down 1427867673.149234: Could not set interface wlan3 flags (UP): Device or resource busy 1427867673.149237: nl80211: Failed to set interface up after switching mode 1427867673.149238: nl80211: Interface mode change to 1 from 1 failed 1427867673.149240: nl80211: Failed to set interface into IBSS mode 1427867673.149251: wlan3: Association request to the driver failed BR Janusz -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2015-04-01 at 08:06 +0200, Janusz Dziedzic wrote: > Hello, > > Seems this one break IBSS case when started from wpa_supplicant at > least for Intel7260 and ath10k where dedicated p2p_device is used. > > This is wpa_supplicant log: > 1427867673.149187: nl80211: Set mode ifindex 8 iftype 1 (ADHOC) > 1427867673.149225: nl80211: Mode change succeeded while interface is down > 1427867673.149234: Could not set interface wlan3 flags (UP): Device or > resource busy That's actually the correct behaviour, given the interface limitations, at least for iwlmvm devices: iw list [...] Supported interface modes: * IBSS * managed * AP * AP/VLAN * monitor * P2P-client * P2P-GO * P2P-device [...] software interface modes (can always be added): * AP/VLAN * monitor valid interface combinations: * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1, total <= 3, #channels <= 2 So there's no combination with P2P-device and IBSS together. In our device I'm pretty sure the two couldn't be supported together. Perhaps the supplicant has issues though with how it creates the P2P-Device? Should probably not be there if you have IBSS, it's pretty useless anyway then. Or at least not be there if the driver doesn't advertise support for that combination. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04/01/15 09:12, Johannes Berg wrote: > On Wed, 2015-04-01 at 08:06 +0200, Janusz Dziedzic wrote: > >> Hello, >> >> Seems this one break IBSS case when started from wpa_supplicant at >> least for Intel7260 and ath10k where dedicated p2p_device is used. >> >> This is wpa_supplicant log: >> 1427867673.149187: nl80211: Set mode ifindex 8 iftype 1 (ADHOC) >> 1427867673.149225: nl80211: Mode change succeeded while interface is down >> 1427867673.149234: Could not set interface wlan3 flags (UP): Device or >> resource busy > > That's actually the correct behaviour, given the interface limitations, > at least for iwlmvm devices: > > iw list > [...] > Supported interface modes: > * IBSS > * managed > * AP > * AP/VLAN > * monitor > * P2P-client > * P2P-GO > * P2P-device > [...] > software interface modes (can always be added): > * AP/VLAN > * monitor > valid interface combinations: > * #{ managed }<= 1, #{ AP, P2P-client, P2P-GO }<= 1, #{ P2P-device }<= 1, > total<= 3, #channels<= 2 > > So there's no combination with P2P-device and IBSS together. > > In our device I'm pretty sure the two couldn't be supported together. > Perhaps the supplicant has issues though with how it creates the > P2P-Device? Should probably not be there if you have IBSS, it's pretty > useless anyway then. Or at least not be there if the driver doesn't > advertise support for that combination. I think in latest wpa_s the P2P-Device is always created. There used to be a driver_param to create it. Not sure if that driver_param could still be used to avoid P2P-Device creation. The interface combinations look confusing to me. Why is there no IBSS or monitor listed there? Regards, Arend > johannes > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2015-04-01 at 10:36 +0200, Arend van Spriel wrote: > I think in latest wpa_s the P2P-Device is always created. There used to > be a driver_param to create it. Not sure if that driver_param could > still be used to avoid P2P-Device creation. Yeah, I feared this was the case so I added Ilan :) I think we need to fix that perhaps in some way? I'm pretty sure we cannot have P2P-Device and IBSS at the same time properly in our device. > The interface combinations look confusing to me. Why is there no IBSS or > monitor listed there? Only "real" combinations are listed - anything that's in the "Supported interface modes" is, by default, only supported with a single virtual interface. Real combinations (of >1 interface) are listed separately. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 04/01/15 10:44, Johannes Berg wrote: > On Wed, 2015-04-01 at 10:36 +0200, Arend van Spriel wrote: > >> I think in latest wpa_s the P2P-Device is always created. There used to >> be a driver_param to create it. Not sure if that driver_param could >> still be used to avoid P2P-Device creation. > > Yeah, I feared this was the case so I added Ilan :) > > I think we need to fix that perhaps in some way? I'm pretty sure we > cannot have P2P-Device and IBSS at the same time properly in our device. > >> The interface combinations look confusing to me. Why is there no IBSS or >> monitor listed there? > > Only "real" combinations are listed - anything that's in the "Supported > interface modes" is, by default, only supported with a single virtual > interface. Real combinations (of>1 interface) are listed separately. Thanks. That helps. Regards, Arend -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi, Can you try the attached patch? Set p2p_disabled=1 in your configuration file. Anyway, this is a quick solution, will try to work on a more complete one that also checks the combinations. Ilan. > -----Original Message----- > From: Arend van Spriel [mailto:arend@broadcom.com] > Sent: Wednesday, April 01, 2015 12:16 > To: Johannes Berg > Cc: Janusz Dziedzic; Peer, Ilan; Grumbach, Emmanuel; linux- > wireless@vger.kernel.org; Otcheretianski, Andrei > Subject: Re: [PATCH 7/7] mac80211: Count correctly interface types > > On 04/01/15 10:44, Johannes Berg wrote: > > On Wed, 2015-04-01 at 10:36 +0200, Arend van Spriel wrote: > > > >> I think in latest wpa_s the P2P-Device is always created. There used > >> to be a driver_param to create it. Not sure if that driver_param > >> could still be used to avoid P2P-Device creation. > > > > Yeah, I feared this was the case so I added Ilan :) > > > > I think we need to fix that perhaps in some way? I'm pretty sure we > > cannot have P2P-Device and IBSS at the same time properly in our device. > > > >> The interface combinations look confusing to me. Why is there no IBSS > >> or monitor listed there? > > > > Only "real" combinations are listed - anything that's in the > > "Supported interface modes" is, by default, only supported with a > > single virtual interface. Real combinations (of>1 interface) are listed > separately. > > Thanks. That helps. > > Regards, > Arend
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index e664b28..36d8cb2 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c @@ -3245,7 +3245,7 @@ int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, wdev_iter = &sdata_iter->wdev; if (sdata_iter == sdata || - rcu_access_pointer(sdata_iter->vif.chanctx_conf) == NULL || + !ieee80211_sdata_running(sdata_iter) || local->hw.wiphy->software_iftypes & BIT(wdev_iter->iftype)) continue;