|
@@ -1626,23 +1626,6 @@ static void hdd_clear_roam_profile_ie(struct hdd_adapter *adapter)
|
|
|
hdd_exit();
|
|
|
}
|
|
|
|
|
|
-QDF_STATUS hdd_roam_deregister_sta(struct hdd_adapter *adapter,
|
|
|
- struct qdf_mac_addr mac_addr)
|
|
|
-{
|
|
|
- QDF_STATUS qdf_status;
|
|
|
-
|
|
|
- qdf_status = cdp_clear_peer(cds_get_context(QDF_MODULE_ID_SOC),
|
|
|
- OL_TXRX_PDEV_ID, mac_addr);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(qdf_status)) {
|
|
|
- hdd_err("cdp_clear_peer() failed for sta mac: "
|
|
|
- QDF_MAC_ADDR_STR ". Status(%d) [0x%08X]",
|
|
|
- QDF_MAC_ADDR_ARRAY(mac_addr.bytes),
|
|
|
- qdf_status, qdf_status);
|
|
|
- }
|
|
|
-
|
|
|
- return qdf_status;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* hdd_print_bss_info() - print bss info
|
|
|
* @hdd_sta_ctx: pointer to hdd station context
|
|
@@ -1697,7 +1680,6 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
|
|
|
eCsrRoamResult roam_result)
|
|
|
{
|
|
|
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
|
|
- QDF_STATUS vstatus;
|
|
|
struct net_device *dev = adapter->dev;
|
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
|
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
|
@@ -1838,38 +1820,8 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
|
|
|
adapter->vdev_id,
|
|
|
SCAN_EVENT_TYPE_MAX, true);
|
|
|
}
|
|
|
- if (eCSR_ROAM_IBSS_LEAVE == roam_status) {
|
|
|
- uint8_t i;
|
|
|
-
|
|
|
- vstatus = hdd_roam_deregister_sta(adapter,
|
|
|
- sta_ctx->conn_info.bssid);
|
|
|
- if (QDF_IS_STATUS_ERROR(vstatus))
|
|
|
- status = QDF_STATUS_E_FAILURE;
|
|
|
-
|
|
|
- /* Clear all the peer sta register with TL. */
|
|
|
- for (i = 0; i < MAX_PEERS; i++) {
|
|
|
- struct qdf_mac_addr mac_addr =
|
|
|
- sta_ctx->conn_info.peer_macaddr[i];
|
|
|
-
|
|
|
- if (!hdd_is_valid_mac_address(mac_addr.bytes))
|
|
|
- continue;
|
|
|
-
|
|
|
- hdd_debug("Deregister Sta " QDF_MAC_ADDR_STR,
|
|
|
- QDF_MAC_ADDR_ARRAY(mac_addr.bytes));
|
|
|
-
|
|
|
- vstatus = hdd_roam_deregister_sta(adapter, mac_addr);
|
|
|
-
|
|
|
- if (QDF_IS_STATUS_ERROR(vstatus))
|
|
|
- status = QDF_STATUS_E_FAILURE;
|
|
|
- /* set the peer mac as 0, all other
|
|
|
- * reset are done in hdd_conn_remove_connect_info.
|
|
|
- */
|
|
|
- qdf_mem_zero(&sta_ctx->conn_info.peer_macaddr[i],
|
|
|
- sizeof(struct qdf_mac_addr));
|
|
|
-
|
|
|
- }
|
|
|
- } else {
|
|
|
/* clear scan cache for Link Lost */
|
|
|
+ if (roam_status != eCSR_ROAM_IBSS_LEAVE) {
|
|
|
if (eCSR_ROAM_LOSTLINK == roam_status) {
|
|
|
wlan_hdd_cfg80211_unlink_bss(adapter,
|
|
|
sta_ctx->conn_info.bssid.bytes,
|
|
@@ -1878,8 +1830,8 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
|
|
|
sme_remove_bssid_from_scan_list(mac_handle,
|
|
|
sta_ctx->conn_info.bssid.bytes);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+
|
|
|
/* Clear saved connection information in HDD */
|
|
|
hdd_conn_remove_connect_info(sta_ctx);
|
|
|
/*
|
|
@@ -3986,8 +3938,6 @@ roam_roam_connect_status_update_handler(struct hdd_adapter *adapter,
|
|
|
QDF_MAC_ADDR_ARRAY(sta_ctx->conn_info.bssid.bytes),
|
|
|
roam_info->staId);
|
|
|
|
|
|
- hdd_roam_deregister_sta(adapter, roam_info->peerMac);
|
|
|
-
|
|
|
sta_ctx->ibss_sta_generation++;
|
|
|
|
|
|
cfg80211_del_sta(adapter->dev,
|
|
@@ -4074,6 +4024,7 @@ QDF_STATUS hdd_roam_deregister_tdlssta(struct hdd_adapter *adapter,
|
|
|
|
|
|
return qdf_status;
|
|
|
}
|
|
|
+
|
|
|
#endif
|
|
|
|
|
|
#ifdef WLAN_FEATURE_11W
|
|
@@ -4647,7 +4598,6 @@ hdd_sme_roam_callback(void *context, struct csr_roam_info *roam_info,
|
|
|
QDF_STATUS qdf_ret_status = QDF_STATUS_SUCCESS;
|
|
|
struct hdd_adapter *adapter = context;
|
|
|
struct hdd_station_ctx *sta_ctx = NULL;
|
|
|
- QDF_STATUS status = QDF_STATUS_SUCCESS;
|
|
|
struct cfg80211_bss *bss_status;
|
|
|
struct hdd_context *hdd_ctx;
|
|
|
|
|
@@ -4701,11 +4651,6 @@ hdd_sme_roam_callback(void *context, struct csr_roam_info *roam_info,
|
|
|
wlan_hdd_netif_queue_control(adapter,
|
|
|
WLAN_STOP_ALL_NETIF_QUEUE,
|
|
|
WLAN_CONTROL_PATH);
|
|
|
- status = hdd_roam_deregister_sta(
|
|
|
- adapter,
|
|
|
- sta_ctx->conn_info.peer_macaddr[0]);
|
|
|
- if (!QDF_IS_STATUS_SUCCESS(status))
|
|
|
- qdf_ret_status = QDF_STATUS_E_FAILURE;
|
|
|
sta_ctx->ft_carrier_on = true;
|
|
|
sta_ctx->hdd_reassoc_scenario = true;
|
|
|
hdd_debug("hdd_reassoc_scenario set to: %d, due to eCSR_ROAM_FT_START, session: %d",
|