Re: [PATCH] brcmfmac: rework function picking free BSS index
From: Rafał Miłecki <zajec5@gmail.com>
Date: 2016-06-13 20:25:09
Also in:
lkml, netdev
On 13 June 2016 at 21:30, Arend van Spriel [off-list ref] wrote:
On 09-06-16 21:16, Arend van Spriel wrote:quoted
On 26-05-16 01:44, Rafał Miłecki wrote:quoted
The old implementation was overcomplicated and slightly bugged in some corner cases.[...]quoted
quoted
New code is simpler, placed in file where it's really used, handles running out of free BSS-es and allows using 4 interfaces at the same time. It also looks for the first free BSS instead of one after the last in use. It works well with current driver (which doesn't allow deleting interfaces) and should be future proof (if we ever allow deleting). Signed-off-by: Rafał Miłecki <zajec5@gmail.com> --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 17 ++++++++++++++- .../wireless/broadcom/brcm80211/brcmfmac/core.c | 24 ---------------------- .../wireless/broadcom/brcm80211/brcmfmac/core.h | 1 - 3 files changed, 16 insertions(+), 26 deletions(-)diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 3d09d23..d00eef8 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c@@ -541,6 +541,21 @@ brcmf_cfg80211_update_proto_addr_mode(struct wireless_dev *wdev) ADDR_INDIRECT); } +static int brcmf_get_first_free_bsscfgidx(struct brcmf_pub *drvr) +{ + int bsscfgidx; + + for (bsscfgidx = 0; bsscfgidx < BRCMF_MAX_IFS; bsscfgidx++) { + /* bsscfgidx 1 is reserved for legacy P2P */Hi Rafał, A bit late as the patch is already applied, but this reserved index is no longer needed as we removed all trickery that was build on the assumption that the P2P_DEVICE interface was always in bsscfgidx 1. Hence this could be removed.I tested STA on bsscfgidx=0, AP on bsscfgidx=1, and P2P_DEV on bsscfgidx=2. P2P discovery on P2P_DEV interface works as expected so we can indeed drop the 'bsscfgidx 1 is reserved' statement. I want to verify on an older device before creating a patch.
Thanks for taking look at this. -- Rafał