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 <quic_rpavan@quicinc.com>
Dieser Commit ist enthalten in:
Pavan Kumar M
2024-05-10 10:35:51 +05:30
Ursprung fbe7aaf5d9
Commit 0d14e2c235
2 geänderte Dateien mit 6 neuen und 5 gelöschten Zeilen

Datei anzeigen

@@ -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);

Datei anzeigen

@@ -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;
}