summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorrakesh goyal <rgoyal@nvidia.com>2020-08-26 14:25:03 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2020-08-27 11:56:27 -0400
commit01423fb2c3a7f555437ec3cdd0800538f8339684 (patch)
tree6c2719b801086fe5ade023903c38b8ca8211b10c /drivers/net
parenta9956d6b369e521822e0e74ea0031548f91fd2da (diff)
eqos: fix kernel panic by adding napi_synchronize
Issue: Kernel panic if NAPI schduled in ether_close() path. Fix: Disable NAPI before freeing dma resources as well as call napi_synchronize() before napi_disable() for NAPI wait Bug 3006448 Bug 200650229 Change-Id: I833c150c8bf2834f7d4cb125ca1328203d5df622 Signed-off-by: rakesh goyal <rgoyal@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2404294 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/nvidia/eqos/drv.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/nvidia/eqos/drv.c b/drivers/net/ethernet/nvidia/eqos/drv.c
index 010726699..f2e396031 100644
--- a/drivers/net/ethernet/nvidia/eqos/drv.c
+++ b/drivers/net/ethernet/nvidia/eqos/drv.c
@@ -166,7 +166,9 @@ static void eqos_all_ch_napi_disable(struct eqos_prv_data *pdata)
166 pr_debug("-->eqos_napi_disable\n"); 166 pr_debug("-->eqos_napi_disable\n");
167 167
168 for (qinx = 0; qinx < EQOS_RX_QUEUE_CNT; qinx++) { 168 for (qinx = 0; qinx < EQOS_RX_QUEUE_CNT; qinx++) {
169 napi_synchronize(&pdata->rx_queue[qinx].napi);
169 napi_disable(&pdata->rx_queue[qinx].napi); 170 napi_disable(&pdata->rx_queue[qinx].napi);
171 napi_synchronize(&pdata->tx_queue[qinx].napi);
170 napi_disable(&pdata->tx_queue[qinx].napi); 172 napi_disable(&pdata->tx_queue[qinx].napi);
171 } 173 }
172 174