qcacld-3.0: fix false alert of NDI interface TX timeout
When NDI do hdd_ndp_peer_departed_handler() or hdd_stop_adapter(), it will invoke hdd_cleanup_ndi() to pause NDI net_dev TX queue, the NDI is in disconnection status, so only pause TX queue but not set netif_carrier_off() will let kernel trigger TX watchdog unexpectedly. Use WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER instead of WLAN_STOP_ALL_NETIF_QUEUE to set netif_carrier_off() then no TX watchdog will be triggered. Change-Id: Ic4a9954b383c34795bda70296f6af977f450bdfd CRs-Fixed: 2765520
This commit is contained in:
@@ -926,8 +926,10 @@ int hdd_ndp_new_peer_handler(uint8_t vdev_id, uint16_t sta_id,
|
||||
hdd_bus_bw_compute_timer_start(hdd_ctx);
|
||||
sta_ctx->conn_info.conn_state = eConnectionState_NdiConnected;
|
||||
hdd_wmm_connect(adapter, roam_info, eCSR_BSS_TYPE_NDI);
|
||||
wlan_hdd_netif_queue_control(adapter,
|
||||
WLAN_WAKE_ALL_NETIF_QUEUE, WLAN_CONTROL_PATH);
|
||||
wlan_hdd_netif_queue_control(
|
||||
adapter,
|
||||
WLAN_START_ALL_NETIF_QUEUE_N_CARRIER,
|
||||
WLAN_CONTROL_PATH);
|
||||
}
|
||||
qdf_mem_free(roam_info);
|
||||
return 0;
|
||||
@@ -946,7 +948,8 @@ void hdd_cleanup_ndi(struct hdd_context *hdd_ctx,
|
||||
hdd_conn_set_connection_state(adapter,
|
||||
eConnectionState_NdiDisconnected);
|
||||
hdd_debug("Stop netif tx queues.");
|
||||
wlan_hdd_netif_queue_control(adapter, WLAN_STOP_ALL_NETIF_QUEUE,
|
||||
wlan_hdd_netif_queue_control(adapter,
|
||||
WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
|
||||
WLAN_CONTROL_PATH);
|
||||
hdd_bus_bw_compute_reset_prev_txrx_stats(adapter);
|
||||
hdd_bus_bw_compute_timer_try_stop(hdd_ctx);
|
||||
|
Reference in New Issue
Block a user