mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-23 09:42:19 +03:00
nvethernet: Disable VM interrupts unconditionally
Issue: Observed that VM interrupts continuously fired if previous NAPI schedule not able to complete the poll function. This case observed more frequently if Tx coalescing enabled. Fix: Disable VM interrupts whether NAPI scheduled or not. Also uses IRQ-OFF variant for NAPI schedule since IRQ's already masked. Bug 200722499 Change-Id: If6fb694c43a1c11efb4f4b881b9fb08dec834917 Signed-off-by: Bhadram Varka <vbhadram@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2537503 Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com> Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
This commit is contained in:
committed by
Revanth Kumar Uppala
parent
3e4fa7b56a
commit
3e54db3f15
@@ -869,21 +869,25 @@ irqreturn_t ether_vm_isr(int irq, void *data)
|
||||
|
||||
if (txrx) {
|
||||
rx_napi = pdata->rx_napi[chan];
|
||||
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
|
||||
if (likely(napi_schedule_prep(&rx_napi->napi))) {
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_RX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
/* TODO: Schedule NAPI on different CPU core */
|
||||
__napi_schedule(&rx_napi->napi);
|
||||
__napi_schedule_irqoff(&rx_napi->napi);
|
||||
}
|
||||
} else {
|
||||
tx_napi = pdata->tx_napi[chan];
|
||||
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
|
||||
if (likely(napi_schedule_prep(&tx_napi->napi))) {
|
||||
osi_handle_dma_intr(osi_dma, chan,
|
||||
OSI_DMA_CH_TX_INTR,
|
||||
OSI_DMA_INTR_DISABLE);
|
||||
/* TODO: Schedule NAPI on different CPU core */
|
||||
__napi_schedule(&tx_napi->napi);
|
||||
__napi_schedule_irqoff(&tx_napi->napi);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user