Re: Atari TT

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

 



Geert,

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.

You're right of course. 

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.

Turns out ne does - atari_ethernec did't. I could boot a kernel with ne
builtin, got the same message as always but this time it didn't hang:

NE*000 ethercard probe at 0x300:
ne ne (unregistered net_device): interrupt from stopped card
00:00:e8:5d:58:cd
eth0: RTL8019 found at 0x300, using IRQ 64.
 sda: AHDI sda1 sda2 sda3 XGM< sda4 sda5 >

That's good enough for me. 


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?

I'll have to check that - as I said, it seems to have gone away with the
current ne driver. 

Baffled,

	Michael
--
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