ソースを参照

msm: ipa: Disable NAPI during pipe teardown

During SSR scenarios, disable and delete the NAPI immediately during
tear down so NAPI won’t be scheduled if there is an IRQ received on
consumer pipes.

Change-Id: I87c284b0be4d45241523a4c34f02c097bd9d7e56
Signed-off-by: Pavan Kumar M <[email protected]>
Pavan Kumar M 1 年間 前
コミット
0d14e2c235

+ 5 - 0
drivers/platform/msm/ipa/ipa_v3/ipa_dp.c

@@ -2011,6 +2011,11 @@ int ipa_teardown_sys_pipe(u32 clnt_hdl)
 			netif_napi_del(&ep->sys->napi_tx);
 	}
 
+	if (IPA_CLIENT_IS_WAN_CONS(ep->client)) {
+		napi_disable(ep->sys->napi_obj);
+		netif_napi_del(ep->sys->napi_obj);
+	}
+
 	if(ep->client == IPA_CLIENT_APPS_WAN_LOW_LAT_DATA_CONS) {
 		napi_disable(&ep->sys->napi_rx);
 		netif_napi_del(&ep->sys->napi_rx);

+ 1 - 5
drivers/platform/msm/ipa/ipa_v3/rmnet_ipa.c

@@ -2,7 +2,7 @@
 /*
  * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
  *
- * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 /*
@@ -1397,12 +1397,8 @@ static int __ipa_wwan_close(struct net_device *dev)
  */
 static int ipa3_wwan_stop(struct net_device *dev)
 {
-	struct ipa3_wwan_private *wwan_ptr = netdev_priv(dev);
-
 	IPAWANDBG("[%s]\n", dev->name);
 	__ipa_wwan_close(dev);
-	if (ipa3_rmnet_res.ipa_napi_enable)
-		napi_disable(&(wwan_ptr->napi));
 	netif_stop_queue(dev);
 	return 0;
 }