1
0

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
Este cometimento está contido em:
Liangwei Dong
2022-09-19 11:21:10 +08:00
cometido por Madan Koyyalamudi
ascendente 5e43636b8c
cometimento 4b20a11518
2 ficheiros modificados com 6 adições e 2 eliminações

Ver ficheiro

@@ -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);

Ver ficheiro

@@ -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);