Patchwork driver_nl80211: handle multiple interface combinations for p2p

login
register
mail settings
Submitter Felix Fietkau
Date Dec. 21, 2013, 4:01 p.m.
Message ID <1387641675-57042-1-git-send-email-nbd@openwrt.org>
Download mbox | patch
Permalink /patch/304415/
State Superseded
Headers show

Comments

Felix Fietkau - Dec. 21, 2013, 4:01 p.m.
The first combination may allow single-channel concurrency for
p2p + managed, but there may be others that allow multi-channel
concurrency. Parse all of them to find the maximum number of channels.

Signed-hostap: Felix Fietkau <nbd@openwrt.org>
---
 src/drivers/driver_nl80211.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Patch

diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 42dddf0..22d81c8 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -3213,10 +3213,12 @@  static int wiphy_info_iface_comb_process(struct wiphy_info_data *info,
 	}
 
 	if (combination_has_p2p && combination_has_mgd) {
-		info->p2p_concurrent = 1;
-		info->num_multichan_concurrent =
+		int num_channels =
 			nla_get_u32(tb_comb[NL80211_IFACE_COMB_NUM_CHANNELS]);
-		return 1;
+
+		info->p2p_concurrent = 1;
+		if (info->num_multichan_concurrent < num_channels)
+			info->num_multichan_concurrent = num_channels;
 	}
 
 	return 0;