qcacmn: Fix link peer is deleted before assoc peer
When vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in async way by sending msg to scheduler thread, and disconnect vdev0 cmd is enqueued to serialization before disconnect vdev1 cmd, so vdev0 assoc peer delete happens before vdev1 link peer, F/W assert happens. To fix it, when vdev1 connected, if find vdev0 isn't connected, disconnect vdev1 in sync way, and let disconnect vdev1 cmd enqueue to serialization queue header instead of tail, make sure it is activated befored disconnect vdev0 cmd. Change-Id: I80b1c8f6528bdd58e953851e164e5bfce2b3bd4a CRs-Fixed: 3339030
This commit is contained in:

committed by
Madan Koyyalamudi

szülő
dce586be60
commit
1aaeca79da
@@ -964,7 +964,9 @@ void mlo_sta_link_connect_notify(struct wlan_objmgr_vdev *vdev,
|
||||
mlo_debug("Handle pending disconnect for vdev %d",
|
||||
wlan_vdev_get_id(vdev));
|
||||
if (assoc_vdev != vdev)
|
||||
mlo_handle_pending_disconnect(vdev);
|
||||
mlo_disconnect(vdev, CM_MLME_DISCONNECT,
|
||||
REASON_DEAUTH_NETWORK_LEAVING,
|
||||
NULL);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user