mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
Revert "r8169: don't try to disable interrupts if NAPI is, scheduled already"
This reverts commit7274c4147a
. Ken reported that RTL8125b can lock up if gro_flush_timeout has the default value of 20000 and napi_defer_hard_irqs is set to 0. In this scenario device interrupts aren't disabled, what seems to trigger some silicon bug under heavy load. I was able to reproduce this behavior on RTL8168h. Fix this by reverting7274c4147a
. Fixes:7274c4147a
("r8169: don't try to disable interrupts if NAPI is scheduled already") Cc: stable@vger.kernel.org Reported-by: Ken Milmore <ken.milmore@gmail.com> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://lore.kernel.org/r/9b5b6f4c-4f54-4b90-b0b3-8d8023c2e780@gmail.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
e4a87abf58
commit
eabb8a9be1
@ -4657,10 +4657,8 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
|
||||
rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
|
||||
}
|
||||
|
||||
if (napi_schedule_prep(&tp->napi)) {
|
||||
rtl_irq_disable(tp);
|
||||
__napi_schedule(&tp->napi);
|
||||
}
|
||||
rtl_irq_disable(tp);
|
||||
napi_schedule(&tp->napi);
|
||||
out:
|
||||
rtl_ack_events(tp, status);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user