Re: [PATCH] net: lan78xx: fix "enabled interrupts" warninig

From: Jisheng Zhang
Date: Mon Apr 08 2019 - 04:07:49 EST


On Mon, 8 Apr 2019 07:46:03 +0000 wrote:

>
>
> >
> > Per my understanding, the proper handling of PHY irq is to make use of
> > PHY_IGNORE_INTERRUPT then call phy_mac_interrupt when
> > INT_ENP_PHY_INT is triggered.
> >
>
> Hi Jisheng,

Hi

> Thanks for the changes.
> Is this warning specific to any linux version?

In theory, no. I only tested 5.0, 4.20, both can reproduce this warning.

> Why do you think PHY irq domain handling is not proper?

+ Marc

The warning comes from calling generic_handle_irq() in usb tasklet context.
This is not correct.

Per my understanding, if there's chained irq, we could introduce extra
irqdomain. E.g

GIC <--> another irqchip controller <--> HW device

But in lan78xx, this is not the case. There's no chained irq at all.
In fact, there's a bit INT_ENP_PHY_INT in MAC's Interrupt Endpoint status
word to indicate this is PHY interrupt. So this is the case
PHY_IGNORE_INTERRUPT/phy_mac_interrupt intend for.

irq experts knows irqdomain etc better, maybe they can provide more inputs

> Maybe we can fix that rather removing complete IRQ domain code changes.
> Also, Can you pls let us know how this changes fixed your warning.

The patch removes the generic_handle_irq() calling from invalid context.

Thanks