Browse Source

nl80211: Handle multiple interface combinations for P2P

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-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau 11 years ago
parent
commit
83c4cb5217
1 changed files with 5 additions and 3 deletions
  1. 5 3
      src/drivers/driver_nl80211.c

+ 5 - 3
src/drivers/driver_nl80211.c

@@ -3444,10 +3444,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 =
+		unsigned 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;