mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
qcacld-3.0: acquire lock before update connection list
Acquire connection list lock in policy mgr before update the entry. The "conn_index" maybe changed for a connection entry if other connection is up or down. Fix by acquire connection to protect the whole "update" operation. Change-Id: I91e82e74884ef32e83e0c4105e88bafe8d99db3d CRs-Fixed: 2848209
This commit is contained in:
parent
d542b5d6ed
commit
2d9b7778d6
1 changed files with 6 additions and 3 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -335,8 +335,9 @@ QDF_STATUS policy_mgr_update_connection_info(struct wlan_objmgr_psoc *psoc,
|
|||
}
|
||||
conn_index++;
|
||||
}
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
|
||||
if (!found) {
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
/* err msg */
|
||||
policy_mgr_err("can't find vdev_id %d in pm_conc_connection_list",
|
||||
vdev_id);
|
||||
|
|
@ -346,11 +347,13 @@ QDF_STATUS policy_mgr_update_connection_info(struct wlan_objmgr_psoc *psoc,
|
|||
status = pm_ctx->wma_cbacks.wma_get_connection_info(
|
||||
vdev_id, &conn_table_entry);
|
||||
if (QDF_STATUS_SUCCESS != status) {
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
policy_mgr_err("can't find vdev_id %d in connection table",
|
||||
vdev_id);
|
||||
return status;
|
||||
}
|
||||
} else {
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
policy_mgr_err("wma_get_connection_info is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
|
@ -378,7 +381,7 @@ QDF_STATUS policy_mgr_update_connection_info(struct wlan_objmgr_psoc *psoc,
|
|||
policy_mgr_get_bw(conn_table_entry.chan_width),
|
||||
conn_table_entry.mac_id, chain_mask,
|
||||
nss, vdev_id, true, true, conn_table_entry.ch_flagext);
|
||||
|
||||
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
||||
/* do we need to change the HW mode */
|
||||
policy_mgr_check_n_start_opportunistic_timer(psoc);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue