Re: [PATCH] Fix kernel lockup in RTL-8169 gigabit ethernet driver

Francois Romieu
2004-04-06T20:53:52Z

Manfred Spraul <manfred@colorfullife.com> :
[...]
> Thanks. The code reloads the tx ring value from memory, thus I don't
> understand why it deadlocks.

Well...
- rtl8169_interrupt() acks all events before rtl8169_tx_interrupt() is called
- the count of descriptors handled in rtl8169_tx_interrupt() is only limited
by the number of packets submitted for TX at the time rtl8169_tx_interrupt()
is called

-> if there is a stream of Tx events, it is possible that Tx descriptors are
processed before the relevant event is notified to the host by the network
adapter.

--
Ueimor