qcacmn: Fix to release vdev reference on cmd dequeue

Add change to release vdev reference only on successful removal
of active cmd from serialization active queue.

Change-Id: I2e14f7f53dc38388cdd05f029edc9329f9dd86a7
CRs-Fixed: 2463724
This commit is contained in:
Santosh Anbu
2019-06-06 14:35:35 +05:30
committad av nshrivas
förälder fb0877f2d6
incheckning f7b253f5e2

Visa fil

@@ -562,6 +562,7 @@ void wlan_serialization_generic_timer_cb(void *arg)
struct wlan_serialization_timer *timer = arg;
struct wlan_serialization_command *cmd = timer->cmd;
struct wlan_objmgr_vdev *vdev = NULL;
enum wlan_serialization_cmd_status status;
if (!cmd) {
@@ -585,10 +586,11 @@ void wlan_serialization_generic_timer_cb(void *arg)
* dequeue cmd API will cleanup and destroy the timer. If it fails to
* dequeue command then we have to destroy the timer.
*/
wlan_serialization_dequeue_cmd(cmd, SER_TIMEOUT, true);
status = wlan_serialization_dequeue_cmd(cmd, SER_TIMEOUT, true);
/* Release the ref taken before the timer was started */
wlan_objmgr_vdev_release_ref(vdev, WLAN_SERIALIZATION_ID);
if (status == WLAN_SER_CMD_IN_ACTIVE_LIST)
wlan_objmgr_vdev_release_ref(vdev, WLAN_SERIALIZATION_ID);
}
static QDF_STATUS wlan_serialization_mc_flush_noop(struct scheduler_msg *msg)