Loading drivers/net/sfc/nic.c +9 −0 Original line number Original line Diff line number Diff line Loading @@ -1384,6 +1384,15 @@ static irqreturn_t efx_legacy_interrupt(int irq, void *dev_id) efx->last_irq_cpu = raw_smp_processor_id(); efx->last_irq_cpu = raw_smp_processor_id(); EFX_TRACE(efx, "IRQ %d on CPU %d status " EFX_DWORD_FMT "\n", EFX_TRACE(efx, "IRQ %d on CPU %d status " EFX_DWORD_FMT "\n", irq, raw_smp_processor_id(), EFX_DWORD_VAL(reg)); irq, raw_smp_processor_id(), EFX_DWORD_VAL(reg)); } else if (EFX_WORKAROUND_15783(efx)) { /* We can't return IRQ_HANDLED more than once on seeing ISR0=0 * because this might be a shared interrupt, but we do need to * check the channel every time and preemptively rearm it if * it's idle. */ efx_for_each_channel(channel, efx) { if (!channel->work_pending) efx_nic_eventq_read_ack(channel); } } } return result; return result; Loading Loading
drivers/net/sfc/nic.c +9 −0 Original line number Original line Diff line number Diff line Loading @@ -1384,6 +1384,15 @@ static irqreturn_t efx_legacy_interrupt(int irq, void *dev_id) efx->last_irq_cpu = raw_smp_processor_id(); efx->last_irq_cpu = raw_smp_processor_id(); EFX_TRACE(efx, "IRQ %d on CPU %d status " EFX_DWORD_FMT "\n", EFX_TRACE(efx, "IRQ %d on CPU %d status " EFX_DWORD_FMT "\n", irq, raw_smp_processor_id(), EFX_DWORD_VAL(reg)); irq, raw_smp_processor_id(), EFX_DWORD_VAL(reg)); } else if (EFX_WORKAROUND_15783(efx)) { /* We can't return IRQ_HANDLED more than once on seeing ISR0=0 * because this might be a shared interrupt, but we do need to * check the channel every time and preemptively rearm it if * it's idle. */ efx_for_each_channel(channel, efx) { if (!channel->work_pending) efx_nic_eventq_read_ack(channel); } } } return result; return result; Loading