Browse Source

qcacmn: Skip link ready when vdev is already UP

In scenarios when two partner vdevs are brought up simultaneously, as part
of moving to start_response or sync_wait mlo_ap_lock is acquired.

For a given vdev not moving to CAC wait, link ready can be posted twice,
which will lead to rcu stall if partner vdev is already trying to dispatch
sync_complete event.

Hence skip the link ready event if the vdev is already in UP state.

Change-Id: Ie3d2c4078ebced3538f3fea08d5b798837534725
CRs-Fixed: 3555092
Santosh Anbu 1 year ago
parent
commit
5faea3c76b
1 changed files with 3 additions and 0 deletions
  1. 3 0
      umac/mlo_mgr/src/wlan_mlo_mgr_ap.c

+ 3 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_ap.c

@@ -396,6 +396,9 @@ static bool mlo_handle_link_ready(struct wlan_objmgr_vdev *vdev)
 		return false;
 	}
 
+	if (wlan_vdev_is_up(vdev) == QDF_STATUS_SUCCESS)
+		return true;
+
 	mld_ctx = vdev->mlo_dev_ctx;
 	/*
 	 * The last vdev in MLD to receive start response is responsible for