[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BN6PR1101MB21305BBBB3F617C9C49141E4E7B10@BN6PR1101MB2130.namprd11.prod.outlook.com>
Date: Sun, 30 Dec 2018 03:25:10 +0000
From: <Woojung.Huh@...rochip.com>
To: <marc.zyngier@....com>, <stefan.wahren@...e.com>
CC: <eric@...olt.net>, <UNGLinuxDriver@...rochip.com>,
<netdev@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>
Subject: RE: lan78xx: WARNING: irq 79 handler enabled interrupts
HI Marc & Stephen,
Most of engineers are out until New Year's Day.
LAN78xx driver uses irq_domain for phy interrupt, but smsc95xx uses polling.
Need to check flow again, you can try that comment out "lan78xx_setup_irq_domain" to
make dev->domain_data.phyirq = 0 which forces PHY polling.
Can you share if this is filed on RPI forum?
Also, it would be appreciated if you can create a ticket on Microchip site at
https://www.microchip.com/technical-support/hot-topics
Best Regards,
Woojung
> -----Original Message-----
> From: Marc Zyngier <marc.zyngier@....com>
> Sent: Saturday, December 29, 2018 4:42 AM
> To: Stefan Wahren <stefan.wahren@...e.com>
> Cc: Woojung Huh - C21699 <Woojung.Huh@...rochip.com>; Eric Anholt
> <eric@...olt.net>; UNGLinuxDriver <UNGLinuxDriver@...rochip.com>;
> netdev@...r.kernel.org; linux-arm-kernel@...ts.infradead.org
> Subject: Re: lan78xx: WARNING: irq 79 handler enabled interrupts
>
> On Sat, 29 Dec 2018 00:02:57 +0000,
> Stefan Wahren <stefan.wahren@...e.com> wrote:
>
> Hi Stephan,
>
> >
> > Hi,
> > while booting my Raspberry Pi 3 B+ with Linux 4.20 (arm64/defconfig)
> > i'm getting the following warning:
> >
> > [ 11.005738] irq 79 handler irq_default_primary_handler+0x0/0x8 enabled
> interrupts
>
> [...]
>
> > This seems to come from the lan78xx driver, because i don't get this
> > warning on the RPI 3B (smsc95xx).
> >
> > What's the approach to fix this issue? Is it just simply replace
> > spin_lock_irq() with spin_lock_irqsave() at the right places?
>
> No, this is more pathological than that. The USB framework seems to be
> using threaded interrupts, which implies that interrupts are
> re-enabled as soon as it has run.
>
> In turn, this driver is using handle_simple_irq() as its flow, which
> definitely expect interrupts to be disabled.
>
> I have no insight in how this driver works, but I'm happy to help if
> someone explains the interrupt flow of this thing.
>
> M.
>
> --
> Jazz is not dead, it just smell funny.
Powered by blists - more mailing lists