Re: Atari TT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 24, 2013 at 10:48 PM, Michael Schmitz
<schmitz@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
The ne.c network driver does not appear to tolerate interrupts arriving before
the device has been configured, at least in the early boot phases. I'm uncertain
whether it would work even with my latest patches applied - maybe I can find
some time on the weekend to test that.

Stupid ISA-only driver without IRQ sharing support...

Indeed - but that may be my old hacked driver which does have IRQ sharing.

The hydra and zorro8390 driver should handle that case fine, as interrupts are
shared on Amiga.

But these will only generate interrupts if the card has something to send,
or receive has been enabled. The timer polling seems to be the problem here.

The point of IRQ sharing is that multiple devices use the same interrupt line.
So it's about _another_ device generating the interrupt.
Both zorro8390 and hydra use IRQ_AMIGA_PORTS. As does Gayle IDE.
Hence if the IDE hardware on A4000 triggers and interrupt, the
interrupt handler of
zorro8390 and hydra will be called as well. Since I'm not aware of any issues
with zorro8390 and hydra in A4000, I assume zorro8390 and hydra handle this,
while ne doesn't.

Geert: is there some way for kernel network drivers to figure out whether the
network subsystem has been initialized, and hold off interrupt processing
before that time? I'm using 'if (netif_running(dev))' in atari_ethernec but
that does not appear to prevent the lockup.

Doesn't the driver know when it's configured?

It does - it will spit out 'interrupt from stopped card' in that case.
That's the last message I see from the kernel before it locks up (haven't
tried in a while, at least that's what happened a year or two ago). The same
still happens when loading the driver as a module - a single message of the
kind, nothing more (but the kernel keeps running).

I would have thought netif_running(dev) returns false before the device has
been started, but that's wrong, apparently.

How does zorro8390 and hydra handle it? They use __ei_interrupt, while
ne uses eip_interrupt, but the latter just calls the former?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux