Project import generated by Copybara.

GitOrigin-RevId: da08bfbf6b3384609bb28cb2539d6a9feaa0290a
diff --git a/wlan_sd8987/mlan/mlan_decl.h b/wlan_sd8987/mlan/mlan_decl.h
index f6e4239..8ae44dc 100755
--- a/wlan_sd8987/mlan/mlan_decl.h
+++ b/wlan_sd8987/mlan/mlan_decl.h
@@ -24,7 +24,7 @@
 #define _MLAN_DECL_H_
 
 /** MLAN release version */
-#define MLAN_RELEASE_VERSION "292.p13"
+#define MLAN_RELEASE_VERSION "292.p15"
 
 /** Re-define generic data types for MLAN/MOAL */
 /** Signed char (1-byte) */
diff --git a/wlan_sd8987/mlinux/mlan_decl.h b/wlan_sd8987/mlinux/mlan_decl.h
index f6e4239..8ae44dc 100755
--- a/wlan_sd8987/mlinux/mlan_decl.h
+++ b/wlan_sd8987/mlinux/mlan_decl.h
@@ -24,7 +24,7 @@
 #define _MLAN_DECL_H_
 
 /** MLAN release version */
-#define MLAN_RELEASE_VERSION "292.p13"
+#define MLAN_RELEASE_VERSION "292.p15"
 
 /** Re-define generic data types for MLAN/MOAL */
 /** Signed char (1-byte) */
diff --git a/wlan_sd8987/mlinux/moal_cfg80211_util.c b/wlan_sd8987/mlinux/moal_cfg80211_util.c
index 05cc2ac..22c71c6 100755
--- a/wlan_sd8987/mlinux/moal_cfg80211_util.c
+++ b/wlan_sd8987/mlinux/moal_cfg80211_util.c
@@ -784,7 +784,7 @@
 		| WLAN_FEATURE_LINK_LAYER_STATS
 		| WLAN_FEATURE_LOGGER
 		| WLAN_FEATURE_RSSI_MONITOR | WLAN_FEATURE_CONFIG_NDO
-		| WLAN_FEATURE_CONTROL_ROAMING | WLAN_FEATURE_SCAN_RAND
+		| WLAN_FEATURE_SCAN_RAND
 //#ifdef RTT_SUPPORT
 //                         | WLAN_FEATURE_D2AP_RTT
 //#endif
diff --git a/wlan_sd8987/mlinux/moal_sta_cfg80211.c b/wlan_sd8987/mlinux/moal_sta_cfg80211.c
index 0460506..9914fbc 100755
--- a/wlan_sd8987/mlinux/moal_sta_cfg80211.c
+++ b/wlan_sd8987/mlinux/moal_sta_cfg80211.c
@@ -1810,7 +1810,7 @@
 			req->bss->bssid, MLAN_MAC_ADDR_LENGTH,
 			MLAN_MAC_ADDR_LENGTH);
 	if (req->ie && req->ie_len) {
-		priv->sme_current.ie = kzalloc(req->ie_len, GFP_KERNEL);
+		priv->sme_current.ie = kzalloc(req->ie_len, GFP_ATOMIC);
 		priv->sme_current.ie_len = req->ie_len;
 		moal_memcpy_ext(priv->phandle, (void *)priv->sme_current.ie,
 				req->ie, req->ie_len, priv->sme_current.ie_len);
@@ -2461,6 +2461,7 @@
 							       flags);
 
 #if CFG80211_VERSION_CODE >= KERNEL_VERSION(5, 1, 0)
+					mutex_lock(&priv->wdev->mtx);
 					cfg80211_rx_assoc_resp(priv->netdev,
 							       bss,
 							       assoc_rsp->
@@ -2468,8 +2469,10 @@
 							       assoc_rsp->
 							       assoc_resp_len,
 							       -1, NULL, 0);
+					mutex_unlock(&priv->wdev->mtx);
 #else
 #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)
+					mutex_lock(&priv->wdev->mtx);
 					cfg80211_rx_assoc_resp(priv->netdev,
 							       bss,
 							       assoc_rsp->
@@ -2477,14 +2480,17 @@
 							       assoc_rsp->
 							       assoc_resp_len,
 							       -1);
+					mutex_unlock(&priv->wdev->mtx);
 #else
 #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
+					mutex_lock(&priv->wdev->mtx);
 					cfg80211_rx_assoc_resp(priv->netdev,
 							       bss,
 							       assoc_rsp->
 							       assoc_resp_buf,
 							       assoc_rsp->
 							       assoc_resp_len);
+					mutex_unlock(&priv->wdev->mtx);
 #else
 					cfg80211_send_rx_assoc(priv->netdev,
 							       bss,