From: Heiner Kallweit <hkallwe...@gmail.com>
Date: Sat, 15 Dec 2018 16:24:02 +0100

> @@ -6405,8 +6405,9 @@ static irqreturn_t rtl8169_interrupt(int irq, void 
> *dev_instance)
>  {
>       struct rtl8169_private *tp = dev_instance;
>       u16 status = rtl_get_events(tp);
> +     u16 irq_mask = RTL_R16(tp, IntrMask);
>  
> -     if (status == 0xffff || !(status & tp->irq_mask))
> +     if (status == 0xffff || !(status & irq_mask))
>               return IRQ_NONE;

Heiner, this is really expensive.  Why is the tp->irq_mask value out of
sync with the value programmed into IntrMask?  Is there some way we can
fix that instead?

Reply via email to