@@ -1500,7 +1500,10 @@ static void hdd_SendReAssocEvent(struct net_device *dev, hdd_adapter_t *pAdapter
15001500 u8 * pFTAssocRsp = NULL ;
15011501 v_U8_t * rspRsnIe = kmalloc (IW_GENERIC_IE_MAX , GFP_KERNEL );
15021502 tANI_U32 rspRsnLength = 0 ;
1503+ struct cfg80211_bss * bss ;
1504+ tCsrRoamConnectedProfile roam_profile ;
15031505 struct ieee80211_channel * chan ;
1506+ tHalHandle hHal = WLAN_HDD_GET_HAL_CTX (pAdapter );
15041507
15051508 if (!rspRsnIe ) {
15061509 hddLog (LOGE , "%s: Unable to allocate RSN IE" , __func__ );
@@ -1534,8 +1537,15 @@ static void hdd_SendReAssocEvent(struct net_device *dev, hdd_adapter_t *pAdapter
15341537 memcpy (rspRsnIe , pFTAssocRsp , len );
15351538 memset (rspRsnIe + len , 0 , IW_GENERIC_IE_MAX - len );
15361539
1537- chan = ieee80211_get_channel (pAdapter -> wdev .wiphy , (int ) pCsrRoamInfo -> pBssDesc -> channelId );
1538- cfg80211_roamed (dev ,chan ,pCsrRoamInfo -> bssid ,
1540+ chan = ieee80211_get_channel (pAdapter -> wdev .wiphy ,
1541+ (int ) pCsrRoamInfo -> pBssDesc -> channelId );
1542+ vos_mem_zero (& roam_profile , sizeof (tCsrRoamConnectedProfile ));
1543+ sme_RoamGetConnectProfile (hHal , pAdapter -> sessionId , & roam_profile );
1544+ bss = hdd_get_bss_entry (pAdapter -> wdev .wiphy ,
1545+ chan , pCsrRoamInfo -> bssid ,
1546+ & roam_profile .SSID .ssId [0 ],
1547+ roam_profile .SSID .length );
1548+ cfg80211_roamed_bss (dev , bss ,
15391549 reqRsnIe , reqRsnLength ,
15401550 rspRsnIe , rspRsnLength ,GFP_KERNEL );
15411551
@@ -1780,6 +1790,8 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
17801790 {
17811791 if ( !hddDisconInProgress )
17821792 {
1793+ struct cfg80211_bss * roam_bss ;
1794+
17831795 hddLog (LOG1 , "%s ft_carrier_on is %d, sending roamed "
17841796 "indication" , __FUNCTION__ , ft_carrier_on );
17851797 chan = ieee80211_get_channel (pAdapter -> wdev .wiphy ,
@@ -1791,9 +1803,14 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
17911803 {
17921804 vos_record_roam_event (e_HDD_SEND_REASSOC_RSP , NULL , 0 );
17931805 }
1794- cfg80211_roamed (dev ,chan , pRoamInfo -> bssid ,
1795- pFTAssocReq , assocReqlen , pFTAssocRsp , assocRsplen ,
1796- GFP_KERNEL );
1806+ roam_bss = hdd_get_bss_entry (pAdapter -> wdev .wiphy ,
1807+ chan , pRoamInfo -> bssid ,
1808+ pRoamInfo -> u .pConnectedProfile -> SSID .ssId ,
1809+ pRoamInfo -> u .pConnectedProfile -> SSID .length );
1810+ cfg80211_roamed_bss (dev , roam_bss ,
1811+ pFTAssocReq , assocReqlen ,
1812+ pFTAssocRsp , assocRsplen ,
1813+ GFP_KERNEL );
17971814 }
17981815 if (sme_GetFTPTKState (WLAN_HDD_GET_HAL_CTX (pAdapter )))
17991816 {
@@ -1815,11 +1832,11 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
18151832 {
18161833 hddLog (LOG1 , "%s ft_carrier_on is %d, sending connect "
18171834 "indication" , __FUNCTION__ , ft_carrier_on );
1818- cfg80211_connect_result (dev , pRoamInfo -> bssid ,
1819- pFTAssocReq , assocReqlen ,
1820- pFTAssocRsp , assocRsplen ,
1821- WLAN_STATUS_SUCCESS ,
1822- GFP_KERNEL );
1835+ hdd_connect_result (dev , pRoamInfo -> bssid , pRoamInfo ,
1836+ pFTAssocReq , assocReqlen ,
1837+ pFTAssocRsp , assocRsplen ,
1838+ WLAN_STATUS_SUCCESS ,
1839+ GFP_KERNEL );
18231840 }
18241841 }
18251842 else
@@ -1857,13 +1874,13 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
18571874 " result:%d and Status:%d" ,
18581875 __func__ , MAC_ADDR_ARRAY (pRoamInfo -> bssid ),
18591876 roamResult , roamStatus );
1860-
18611877 /* inform connect result to nl80211 */
1862- cfg80211_connect_result (dev , pRoamInfo -> bssid ,
1863- reqRsnIe , reqRsnLength ,
1864- rspRsnIe , rspRsnLength ,
1865- WLAN_STATUS_SUCCESS ,
1866- GFP_KERNEL );
1878+ hdd_connect_result (dev , pRoamInfo -> bssid ,
1879+ pRoamInfo ,
1880+ reqRsnIe , reqRsnLength ,
1881+ rspRsnIe , rspRsnLength ,
1882+ WLAN_STATUS_SUCCESS ,
1883+ GFP_KERNEL );
18671884 }
18681885 }
18691886 }
@@ -2056,30 +2073,30 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs
20562073 if ( eCSR_ROAM_RESULT_ASSOC_FAIL_CON_CHANNEL == roamResult )
20572074 {
20582075 if (pRoamInfo )
2059- cfg80211_connect_result ( dev , pRoamInfo -> bssid ,
2076+ hdd_connect_result ( dev , pRoamInfo -> bssid , NULL ,
20602077 NULL , 0 , NULL , 0 ,
20612078 WLAN_STATUS_ASSOC_DENIED_UNSPEC ,
2062- GFP_KERNEL );
2079+ GFP_KERNEL );
20632080 else
2064- cfg80211_connect_result ( dev , pWextState -> req_bssId ,
2081+ hdd_connect_result ( dev , pWextState -> req_bssId , NULL ,
20652082 NULL , 0 , NULL , 0 ,
20662083 WLAN_STATUS_ASSOC_DENIED_UNSPEC ,
2067- GFP_KERNEL );
2084+ GFP_KERNEL );
20682085 }
20692086 else
20702087 {
20712088 if (pRoamInfo )
2072- cfg80211_connect_result ( dev , pRoamInfo -> bssid ,
2089+ hdd_connect_result ( dev , pRoamInfo -> bssid , NULL ,
20732090 NULL , 0 , NULL , 0 ,
20742091 pRoamInfo -> reasonCode ?
20752092 pRoamInfo -> reasonCode :
20762093 WLAN_STATUS_UNSPECIFIED_FAILURE ,
2077- GFP_KERNEL );
2094+ GFP_KERNEL );
20782095 else
2079- cfg80211_connect_result ( dev , pWextState -> req_bssId ,
2096+ hdd_connect_result ( dev , pWextState -> req_bssId , NULL ,
20802097 NULL , 0 , NULL , 0 ,
20812098 WLAN_STATUS_UNSPECIFIED_FAILURE ,
2082- GFP_KERNEL );
2099+ GFP_KERNEL );
20832100 }
20842101 /*Clear the roam profile*/
20852102 hdd_clearRoamProfileIe ( pAdapter );
0 commit comments