Re: nve locking fixes round 2

From: Matthew Dillon <dillon_at_apollo.backplane.com>
Date: Fri, 25 Nov 2005 08:09:29 -0800 (PST)
:...
:>
:>    The reason I set sc->pending_txs to 0 in DFly after the reinit is
:>    because when a watchdog timeout occurs and you reset the device,
:>    *ALL* mbufs still sitting in the transmit ring are lost.  They will
:>    never be acknowledged, ever.  So pending_txs will never drop back to 0 on
:>    its own.  This is what led to continuous watchdog timeout reports
:>    when, in fact, only one timeout actually occured.
:
:the problem is that with some versions of the hardware you are not
:even able to get the first packet out.
:
:-- 
:Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT

    I'm not sure if its the same as what happened to me, but I believe 
    I have observed this as well.  But at least in my case it turned out
    to be a bug in (if_nv.c for DFly) that issued ABI calls before resetting
    the hardware.  I think it had something to do with nv_stop() being called
    before the initial hardware reset and nv_stop() then making an ABI call
    or two that expected the hardware to already be in a sane state (when it
    wasn't).  You'd have to look at the DFly commit to see for sure.

					-Matt
					Matthew Dillon 
					<dillon_at_backplane.com>
Received on Fri Nov 25 2005 - 15:09:56 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:48 UTC