qcacmn: Fix scan entry assoc state update issue

On disconnecting, the bssid may not be filled in cm_req->discon_req.
Zero bssid will fail to update the scan entry to non association
state which may block the scan entry age out.
Move disconnect bssid fill before update the scan entry for
disconnecting.

Change-Id: Id8a36d8a37c212af727c7b61a24b51f2782c4a2c
CRs-Fixed: 3291599
This commit is contained in:
Liangwei Dong
2022-09-19 11:21:10 +08:00
committato da Madan Koyyalamudi
parent 5e43636b8c
commit 4b20a11518
2 ha cambiato i file con 6 aggiunte e 2 eliminazioni

Vedi File

@@ -438,6 +438,8 @@ cm_disconnect_continue_after_rso_stop(struct wlan_objmgr_vdev *vdev,
return QDF_STATUS_E_INVAL;
wlan_vdev_get_bss_peer_mac(cm_ctx->vdev, &bssid);
qdf_copy_macaddr(&req->req.bssid, &bssid);
/*
* for northbound req, bssid is not provided so update it from vdev
* in case bssid is not present
@@ -446,8 +448,6 @@ cm_disconnect_continue_after_rso_stop(struct wlan_objmgr_vdev *vdev,
qdf_is_macaddr_broadcast(&cm_req->discon_req.req.bssid))
qdf_copy_macaddr(&cm_req->discon_req.req.bssid,
&req->req.bssid);
qdf_copy_macaddr(&req->req.bssid, &bssid);
cm_update_scan_mlme_on_disconnect(cm_ctx->vdev,
&cm_req->discon_req);

Vedi File

@@ -1973,6 +1973,10 @@ QDF_STATUS scm_scan_update_mlme_by_bssinfo(struct wlan_objmgr_pdev *pdev,
qdf_spin_lock_bh(&scan_db->scan_db_lock);
qdf_mem_copy(&entry->mlme_info, mlme,
sizeof(struct mlme_info));
scm_debug("BSSID: "QDF_MAC_ADDR_FMT" set assoc_state to %d with age %lu ms",
QDF_MAC_ADDR_REF(entry->bssid.bytes),
mlme->assoc_state,
util_scan_entry_age(entry));
scm_scan_entry_put_ref(scan_db,
cur_node, false);
qdf_spin_unlock_bh(&scan_db->scan_db_lock);