From 01548b7f5cf75e2b99be137760a0cc640756ff6c Mon Sep 17 00:00:00 2001 From: "Padma, Santhosh Kumar" Date: Wed, 7 Feb 2018 13:05:06 +0530 Subject: [PATCH] qcacmn: Fix hidden ssid match in OWE OWE SSID is hidden in OWE transition mode. When supplicant detects connection to OWE transition mode, it issues connect with required SSID to driver. But that ssid does not present in driver scan cache as it is hidden. Instead of this ssid, driver scan cache has NULL entry. This can result in connection failure due to mismatch in ssid. In normal hidden ssid cases, supplicant issues scan with specific ssid which helps to update driver scan cache with required ssid. SSID is also hidden in OWE transition mode, but supplicant does not issue scan with specific ssid which results in NULL entry in driver scan cache for that SSID. Fix this issue by explicit check for OWE if it is hidden. Change-Id: I95e6b9af37e62c56b4b890090c33d53f89fed731 CRs-Fixed: 2185576 --- umac/scan/core/src/wlan_scan_filter.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/umac/scan/core/src/wlan_scan_filter.c b/umac/scan/core/src/wlan_scan_filter.c index 6bcd44ac5304..e33ebd3b0334 100644 --- a/umac/scan/core/src/wlan_scan_filter.c +++ b/umac/scan/core/src/wlan_scan_filter.c @@ -919,6 +919,19 @@ bool scm_filter_match(struct wlan_objmgr_psoc *psoc, } } } + /* + * In OWE transition mode, ssid is hidden. And supplicant does not issue + * scan with specific ssid prior to connect as in other hidden ssid + * cases. Add explicit check to allow OWE when ssid is hidden. + */ + if (!match && util_scan_entry_is_hidden_ap(db_entry)) { + for (i = 0; i < filter->num_of_auth; i++) { + if (filter->auth_type[i] == WLAN_AUTH_TYPE_OWE) { + match = true; + break; + } + } + } if (!match && filter->num_of_ssid) return false;