Skip to content

Commit

Permalink
r8169: remove member irq_enabled from struct rtl8169_private
Browse files Browse the repository at this point in the history
After making use of the gro_flush_timeout attribute I once got a
tx timeout due to an interrupt that wasn't handled. Seems using
irq_enabled can be racy, and it's not needed any longer anyway,
so remove it. I've never seen a report about such a race before,
therefore treat the change as an improvement.

There's just one small drawback: If a legacy PCI interrupt is used,
and if this interrupt is shared with a device with high interrupt
rate, then we may handle interrupts even if NAPI disabled them,
and we may see a certain performance decrease under high network load.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
hkallweit authored and davem330 committed Aug 19, 2020
1 parent 52dbe84 commit 9e89d71
Showing 1 changed file with 1 addition and 5 deletions.
6 changes: 1 addition & 5 deletions drivers/net/ethernet/realtek/r8169_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,6 @@ struct rtl8169_private {
struct work_struct work;
} wk;

unsigned irq_enabled:1;
unsigned supports_gmii:1;
unsigned aspm_manageable:1;
dma_addr_t counters_phys_addr;
Expand Down Expand Up @@ -1280,12 +1279,10 @@ static void rtl_irq_disable(struct rtl8169_private *tp)
RTL_W32(tp, IntrMask_8125, 0);
else
RTL_W16(tp, IntrMask, 0);
tp->irq_enabled = 0;
}

static void rtl_irq_enable(struct rtl8169_private *tp)
{
tp->irq_enabled = 1;
if (rtl_is_8125(tp))
RTL_W32(tp, IntrMask_8125, tp->irq_mask);
else
Expand Down Expand Up @@ -4541,8 +4538,7 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
struct rtl8169_private *tp = dev_instance;
u32 status = rtl_get_events(tp);

if (!tp->irq_enabled || (status & 0xffff) == 0xffff ||
!(status & tp->irq_mask))
if ((status & 0xffff) == 0xffff || !(status & tp->irq_mask))
return IRQ_NONE;

if (unlikely(status & SYSErr)) {
Expand Down

0 comments on commit 9e89d71

Please sign in to comment.