Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1184ffd authored by Yeshwanth Sriram Guntuka's avatar Yeshwanth Sriram Guntuka Committed by Gerrit - the friendly Code Review server
Browse files

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
parent 747e9cea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1076,6 +1076,7 @@ typedef struct tagCsrRoamStruct
    tANI_U32 deauthRspStatus;
    tANI_BOOLEAN pending_roam_disable;
    vos_spin_lock_t roam_state_lock;
    tSirMacAddr spoof_mac_addr;
}tCsrRoamStruct;


+2 −0
Original line number Diff line number Diff line
@@ -6668,6 +6668,8 @@ eHalStatus csrProcessMacAddrSpoofCommand( tpAniSirGlobal pMac, tSmeCmd *pCommand
      // 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);

+11 −2
Original line number Diff line number Diff line
@@ -3814,9 +3814,18 @@ VOS_STATUS csrNeighborRoamTransitToCFGChanScan(tpAniSirGlobal pMac)
    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 (