Patch "brcmfmac: setup passive scan if requested by user-space" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
brcmfmac: setup passive scan if requested by user-space
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
brcmfmac-setup-passive-scan-if-requested-by-user-space.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
35f62727df0ed8e5e4857e162d94fd46d861f1cfMon Sep 17 00:00:00 2001
From: Arend Van Spriel <[email protected]>
Date: Tue, 12 Sep 2017 10:47:54 +0200
Subject: brcmfmac: setup passive scan if requested by user-space
From: Arend Van Spriel <[email protected]>
commit 35f62727df0ed8e5e4857e162d94fd46d861f1cf upstream.
The driver was not properly configuring firmware with regard to the type of scan. It always performed an active scan even when user-space was requesting for passive scan, ie. the scan request was done without any SSIDs specified.
--- drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c | 19 ++++--------------- drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h | 5 +++++ 2 files changed, 9 insertions(+), 15 deletions(-)
drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +4 -15
@@ -876,7 +876,7 @@ static void brcmf_escan_prep(struct brcmeth_broadcast_addr (params_le->bssid); params_le->bss_type =DOT11_BSSTYPE_ANY ; - params_le->scan_type =0 ; + params_le->scan_type =BRCMF_SCANTYPE_ACTIVE ; params_le->channel_num =0 ; params_le->nprobes =cpu_to_le32 (-1 ); params_le->active_time =cpu_to_le32 (-1 );
@@ -884,12 +884,9 @@ static void brcmf_escan_prep(struct brcm params_le->home_time =cpu_to_le32 (-1 );memset (¶ms_le->ssid_le,0 ,sizeof (params_le->ssid_le)); -/* if request is null exit so it will be all channel broadcast scan */ -if (!request) -return ; - n_ssids = request->n_ssids; n_channels = request->n_channels; +/* Copy channel array if applicable */ brcmf_dbg (SCAN ,"### List of channelspecs to scan ### %d\n" , n_channels);
@@ -926,16 +923,8 @@ static void brcmf_escan_prep(struct brcm ptr +=sizeof (ssid_le); } }else { -brcmf_dbg (SCAN ,"Broadcast scan %p\n" , request->ssids); -if ((request->ssids) && request->ssids->ssid_len) { -brcmf_dbg (SCAN ,"SSID %s len=%d\n" , - params_le->ssid_le.SSID, - request->ssids->ssid_len); - params_le->ssid_le.SSID_len = -cpu_to_le32 (request->ssids->ssid_len); -memcpy (¶ms_le->ssid_le.SSID, request->ssids->ssid, - request->ssids->ssid_len); - } +brcmf_dbg (SCAN ,"Performing passive scan\n" ); + params_le->scan_type =BRCMF_SCANTYPE_PASSIVE ; }/* Adding mask to channel numbers */ params_le->channel_num =
drivers/net/wireless/brcm80211/brcmfmac/fwil_types.h +5 -0
@@ -45,6 +45,11 @@#define BRCMF_SCAN_PARAMS_COUNT_MASK 0x0000ffff#define BRCMF_SCAN_PARAMS_NSSID_SHIFT 16 +/* scan type definitions */ +#define BRCMF_SCANTYPE_DEFAULT 0xFF +#define BRCMF_SCANTYPE_ACTIVE 0 +#define BRCMF_SCANTYPE_PASSIVE 1 +/* primary (ie tx) key */ #define BRCMF_PRIMARY_KEY (1 << 1)#define DOT11_BSSTYPE_ANY 2
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/brcmfmac-add-length-check-in-brcmf_cfg80211_escan_handler.patch queue-4.4/brcmfmac-setup-passive-scan-if-requested-by-user-space.patch