wlan: Update spoof mac address in TL for roam scan

Spoof mac address used in roam scan is not updated
in TL resulting in probe req to be dropped before
sending the frames to firmware and eventually causing
roaming to fail.

Fix is to update spoof mac address in TL before
triggering roam scan.

Change-Id: I3f353c11f61321355e929d723f6ef9851bde4a2d
CRs-Fixed: 2534723
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index 8a7a8e8..77a4dd2 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -1076,6 +1076,7 @@
     tANI_U32 deauthRspStatus;
     tANI_BOOLEAN pending_roam_disable;
     vos_spin_lock_t roam_state_lock;
+    tSirMacAddr spoof_mac_addr;
 }tCsrRoamStruct;
 
 
diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c
index 901e2da..72aecc0 100644
--- a/CORE/SME/src/csr/csrApiScan.c
+++ b/CORE/SME/src/csr/csrApiScan.c
@@ -6668,6 +6668,8 @@
       // spoof mac address
       vos_mem_copy((tANI_U8 *)pMsg->macAddr,
            (tANI_U8 *)pCommand->u.macAddrSpoofCmd.macAddr, sizeof(tSirMacAddr));
+      vos_mem_copy((tANI_U8 *)pMac->roam.spoof_mac_addr,
+           (tANI_U8 *)pCommand->u.macAddrSpoofCmd.macAddr, sizeof(tSirMacAddr));
       pMsg->spoof_mac_oui =
        pal_cpu_to_be16(pCommand->u.macAddrSpoofCmd.spoof_mac_oui);
 
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index 229ed17..338899d 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -3814,9 +3814,18 @@
     tpCsrChannelInfo    currChannelListInfo;
     tANI_U8   scanChannelList[WNI_CFG_VALID_CHANNEL_LIST_LEN];
     int       outputNumOfChannels = 0;
-#ifdef FEATURE_WLAN_LFR
     tANI_U32 sessionId = pNeighborRoamInfo->csrSessionId;
-#endif
+    VOS_STATUS vos_status;
+
+    vos_status = WLANTL_updateSpoofMacAddr(pMac->roam.gVosContext,
+                  (v_MACADDR_t*)&pMac->roam.spoof_mac_addr,
+                  (v_MACADDR_t*)&pMac->roam.roamSession[sessionId].selfMacAddr);
+    if (vos_status != VOS_STATUS_SUCCESS)
+    {
+        smsLog(pMac, LOGE, FL("Failed to update MAC Spoof Addr in TL"));
+        return vos_status;
+    }
+
     currChannelListInfo = &pNeighborRoamInfo->roamChannelInfo.currentChannelListInfo;
 
     if (