qcacld-3.0: Enable network queue directly in case of roaming
Currently in the case of roaming between latency-critical connection and non-latency critical connection we are scheduling work to update features and after feature update we are enabling network queues which is introducing a delay in enabling queues due to work schedule. To Fix the issue enable network queue in the current context and schedule work to update features. Change-Id: Idba5b81a58aaf2bd47d80da1d17ad0acf9939071 CRs-Fixed: 3070688
This commit is contained in:
committed by
Madan Koyyalamudi
parent
c2f957175b
commit
72fb06b560
@@ -1,5 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. 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 above
|
||||
@@ -304,11 +305,11 @@ void hdd_cm_netif_queue_enable(struct hdd_adapter *adapter)
|
||||
adapter->vdev_id);
|
||||
qdf_queue_work(0, hdd_ctx->adapter_ops_wq,
|
||||
&adapter->netdev_features_update_work);
|
||||
} else {
|
||||
wlan_hdd_netif_queue_control(adapter,
|
||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
|
||||
wlan_hdd_netif_queue_control(adapter,
|
||||
WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
|
||||
void hdd_cm_clear_pmf_stats(struct hdd_adapter *adapter)
|
||||
|
@@ -10705,24 +10705,16 @@ __hdd_adapter_param_update_work(struct hdd_adapter *adapter)
|
||||
{
|
||||
/**
|
||||
* This check is needed in case the work got scheduled after the
|
||||
* interface got disconnected. During disconnection, the network queues
|
||||
* are paused and hence should not be, mistakenly, restarted here.
|
||||
* There are two approaches to handle this case
|
||||
* 1) Flush the work during disconnection
|
||||
* 2) Check for connected state in work
|
||||
*
|
||||
* Since the flushing of work during disconnection will need to be
|
||||
* done at multiple places or entry points, instead its preferred to
|
||||
* check the connection state and skip the operation here.
|
||||
* interface got disconnected.
|
||||
* Netdev features update is to be done only after the connection,
|
||||
* since the connection mode plays an important role in identifying
|
||||
* the features that are to be updated.
|
||||
* So in case of interface disconnect skip feature update.
|
||||
*/
|
||||
if (!hdd_cm_is_vdev_associated(adapter))
|
||||
return;
|
||||
|
||||
hdd_netdev_update_features(adapter);
|
||||
|
||||
hdd_debug("Enabling queues");
|
||||
wlan_hdd_netif_queue_control(adapter, WLAN_WAKE_ALL_NETIF_QUEUE,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user