[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210219223032.GA1343@allandria.com>
Date: Fri, 19 Feb 2021 14:30:32 -0800
From: Brad Boyer <flar@...andria.com>
To: Geert Uytterhoeven <geert@...ux-m68k.org>
Cc: Michael Schmitz <schmitzmic@...il.com>,
Arnd Bergmann <arnd@...nel.org>,
Finn Thain <fthain@...egraphics.com.au>,
"Song Bao Hua (Barry Song)" <song.bao.hua@...ilicon.com>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"gregkh@...uxfoundation.org" <gregkh@...uxfoundation.org>,
"arnd@...db.de" <arnd@...db.de>,
"funaho@...ai.org" <funaho@...ai.org>,
"philb@....org" <philb@....org>, "corbet@....net" <corbet@....net>,
"mingo@...hat.com" <mingo@...hat.com>,
"linux-m68k@...ts.linux-m68k.org" <linux-m68k@...ts.linux-m68k.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [RFC] IRQ handlers run with some high-priority interrupts(not
NMI) enabled on some platform
On Fri, Feb 19, 2021 at 09:10:57AM +0100, Geert Uytterhoeven wrote:
> Hi Michael,
>
> On Thu, Feb 18, 2021 at 11:11 PM Michael Schmitz <schmitzmic@...il.com> wrote:
> > On 19/02/21 12:19 am, Arnd Bergmann wrote:
> > > drivers/net/ethernet/8390/apne.c
> > > drivers/net/ethernet/8390/ax88796.c
> > > drivers/net/ethernet/8390/hydra.c
> > > drivers/net/ethernet/8390/mac8390.c
> > > drivers/net/ethernet/8390/ne.c
> > > drivers/net/ethernet/8390/zorro8390.c
> > [...]
> > > Most of these are normal short-lived interrupts that only transfer
> > > a few bytes or schedule deferred processing of some sort.
> > > Most of the scsi and network drivers process the data in
> > > a softirq, so those are generally fine here, but I do see that 8390
> > > (ne2000) ethernet and the drivers/ide drivers do transfer their
> > > data in hardirq context.
> > >
> > > Arnd
> >
> > 8390 ethernet drivers are widely used on m68k platforms (Amiga and
> > Atari). At least on Amiga, the corresponding interrupt is a hardirq so
> > I'd advise caution. That said, the 8390 drivers might benefit from some
> > refactoring (the way these drivers are compiled does prevent e.g. the
> > APNE driver from being used with two different variants of PCMCIA
> > interfaces. I had begun some work on making IO primitives runtime
> > selected two years ago but that ended up looking too ugly ...).
> >
> > Can't recall what IPL the 8390 interrupts operate at - Geert?
>
> #define IRQ_AMIGA_PORTS IRQ_AUTO_2
>
> Zorro expansion boards can also use
>
> #define IRQ_AMIGA_EXTER IRQ_AUTO_6
>
> and some boards may have a jumper to select the latter, but all Amiga
> Linux drivers use IRQ_AMIGA_PORTS.
The mac8390 driver will show up wherever NuBus interrupts are routed,
which varies by hardware. It's frequently IRQ_AUTO_2 (due to being
routed through the second VIA chip on most models), but it can be in
other places on systems that don't use a second VIA chip. On the IIfx,
NuBus interrupts get routed through OSS to IRQ_AUTO_3. I don't see any
cases that use other interrupt levels, but some of the logic is a
little harder to follow.
It's not an 8390, but it looks like macmace actually uses two levels. The
regular interrupt should show up at IRQ_AUTO_3 and the DMA interrupts at
IRQ_AUTO_4. Most Macs only use 4 for serial, but this is an exception.
Brad Boyer
flar@...andria.com
Powered by blists - more mailing lists