Ver código fonte

qcacld-3.0: Don't stop netdev queues on link switch failure

If link switch connection fails due to any reason the netdev
queues are stopped which leads to NUD failure and finally results
in connection teardown.

As we have one non-transitioning link for data transmission
in case of link switch, don't disable the netdev queues.

CRs-Fixed: 3599028
Change-Id: I4555ca3705950ce874b90f8a6e8cc5a50ea92793
Vinod Kumar Pirla 1 ano atrás
pai
commit
46d3fc5376
1 arquivos alterados com 12 adições e 4 exclusões
  1. 12 4
      core/hdd/src/wlan_hdd_cm_connect.c

+ 12 - 4
core/hdd/src/wlan_hdd_cm_connect.c

@@ -1000,10 +1000,18 @@ hdd_cm_connect_failure_post_user_update(struct wlan_objmgr_vdev *vdev,
 	hdd_clear_roam_profile_ie(adapter);
 	ucfg_cm_reset_key(hdd_ctx->pdev, link_info->vdev_id);
 	hdd_wmm_dscp_initial_state(adapter);
-	hdd_debug("Disabling queues");
-	wlan_hdd_netif_queue_control(adapter,
-				     WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
-				     WLAN_CONTROL_PATH);
+
+	/*
+	 * If connect failure is due to link switch, do not disable the
+	 * netdev queues as it will lead to data stall/NUD failure.
+	 */
+	if (!(rsp->cm_id & CM_ID_LSWITCH_BIT)) {
+		hdd_debug("Disabling queues");
+		wlan_hdd_netif_queue_control(adapter,
+					     WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
+					     WLAN_CONTROL_PATH);
+	}
+
 	ucfg_dp_periodic_sta_stats_start(vdev);
 	wlan_twt_concurrency_update(hdd_ctx);
 }