qcacld-3.0: Don't enable roam if MLO vdev is not up
When MLO sta disconnected, sta_ctx->wlan_connected_links is cleared, mlo_check_if_all_vdev_up return true, RSO can be enabled on this stopped vdev, F/W assert will happen for roam struct is absent. To fix it, for MLO vdev, don't enable roam if current vdev is not up like legacy vdev. Change-Id: I32e1b50525edcc4e7f6b42078e4fda9f415c9841 CRs-Fixed: 3555349
This commit is contained in:

committed by
Rahul Choudhary

vanhempi
cc781de492
commit
331bebf233
@@ -767,6 +767,12 @@ mlo_check_if_all_vdev_up(struct wlan_objmgr_vdev *vdev)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (QDF_IS_STATUS_ERROR(wlan_vdev_is_up(vdev))) {
|
||||||
|
mlo_debug("Vdev id %d is not in up state",
|
||||||
|
wlan_vdev_get_id(vdev));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
mlo_dev_ctx = vdev->mlo_dev_ctx;
|
mlo_dev_ctx = vdev->mlo_dev_ctx;
|
||||||
sta_ctx = mlo_dev_ctx->sta_ctx;
|
sta_ctx = mlo_dev_ctx->sta_ctx;
|
||||||
for (i = 0; i < WLAN_UMAC_MLO_MAX_VDEVS; i++) {
|
for (i = 0; i < WLAN_UMAC_MLO_MAX_VDEVS; i++) {
|
||||||
@@ -775,7 +781,7 @@ mlo_check_if_all_vdev_up(struct wlan_objmgr_vdev *vdev)
|
|||||||
|
|
||||||
if (qdf_test_bit(i, sta_ctx->wlan_connected_links) &&
|
if (qdf_test_bit(i, sta_ctx->wlan_connected_links) &&
|
||||||
!QDF_IS_STATUS_SUCCESS(wlan_vdev_is_up(mlo_dev_ctx->wlan_vdev_list[i]))) {
|
!QDF_IS_STATUS_SUCCESS(wlan_vdev_is_up(mlo_dev_ctx->wlan_vdev_list[i]))) {
|
||||||
mlo_debug("Vdev id %d is not in connected state",
|
mlo_debug("Vdev id %d is not in up state",
|
||||||
wlan_vdev_get_id(mlo_dev_ctx->wlan_vdev_list[i]));
|
wlan_vdev_get_id(mlo_dev_ctx->wlan_vdev_list[i]));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Viittaa uudesa ongelmassa
Block a user