From a63907b3bbb07724d6526b20ae18ad90f351e954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 22 Jul 2019 10:45:38 +0200 Subject: mac80211: brcmfmac: rename v4.12 patches to allow more backports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki --- ...ly-add-channels-and-ssids-once-in-scan-re.patch | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 package/kernel/mac80211/patches/319-v4.12-0045-brcmfmac-only-add-channels-and-ssids-once-in-scan-re.patch (limited to 'package/kernel/mac80211/patches/319-v4.12-0045-brcmfmac-only-add-channels-and-ssids-once-in-scan-re.patch') diff --git a/package/kernel/mac80211/patches/319-v4.12-0045-brcmfmac-only-add-channels-and-ssids-once-in-scan-re.patch b/package/kernel/mac80211/patches/319-v4.12-0045-brcmfmac-only-add-channels-and-ssids-once-in-scan-re.patch new file mode 100644 index 0000000000..7bff17f904 --- /dev/null +++ b/package/kernel/mac80211/patches/319-v4.12-0045-brcmfmac-only-add-channels-and-ssids-once-in-scan-re.patch @@ -0,0 +1,56 @@ +From 6ea51fc708aedcf411f355de65a704ecda501bc4 Mon Sep 17 00:00:00 2001 +From: Arend Van Spriel +Date: Thu, 6 Apr 2017 13:14:42 +0100 +Subject: [PATCH] brcmfmac: only add channels and ssids once in scan request + +When receiving pno results there may be duplicate channels and/or +ssids. Assure each is added only once when preparing the internal +escan request. + +Reviewed-by: Hante Meuleman +Reviewed-by: Pieter-Paul Giesberts +Reviewed-by: Franky Lin +Signed-off-by: Arend van Spriel +Signed-off-by: Kalle Valo +--- + .../wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +@@ -3216,7 +3216,7 @@ static int brcmf_internal_escan_add_info + { + struct ieee80211_channel *chan; + enum nl80211_band band; +- int freq; ++ int freq, i; + + if (channel <= CH_MAX_2G_CHANNEL) + band = NL80211_BAND_2GHZ; +@@ -3231,10 +3231,22 @@ static int brcmf_internal_escan_add_info + if (!chan) + return -EINVAL; + +- req->channels[req->n_channels++] = chan; +- memcpy(req->ssids[req->n_ssids].ssid, ssid, ssid_len); +- req->ssids[req->n_ssids++].ssid_len = ssid_len; +- ++ for (i = 0; i < req->n_channels; i++) { ++ if (req->channels[i] == chan) ++ break; ++ } ++ if (i == req->n_channels) ++ req->channels[req->n_channels++] = chan; ++ ++ for (i = 0; i < req->n_ssids; i++) { ++ if (req->ssids[i].ssid_len == ssid_len && ++ !memcmp(req->ssids[i].ssid, ssid, ssid_len)) ++ break; ++ } ++ if (i == req->n_ssids) { ++ memcpy(req->ssids[req->n_ssids].ssid, ssid, ssid_len); ++ req->ssids[req->n_ssids++].ssid_len = ssid_len; ++ } + return 0; + } + -- cgit v1.2.3