netdev
[Top] [All Lists]

Re: Locking model for NAPI drivers

To: mchan@xxxxxxxxxxxx
Subject: Re: Locking model for NAPI drivers
From: "David S. Miller" <davem@xxxxxxxxxxxxx>
Date: Wed, 01 Jun 2005 15:21:34 -0700 (PDT)
Cc: netdev@xxxxxxxxxxx
In-reply-to: <1117658019.4310.58.camel@rh4>
References: <20050531.154847.63995530.davem@davemloft.net> <1117658019.4310.58.camel@rh4>
Sender: netdev-bounce@xxxxxxxxxxx
From: "Michael Chan" <mchan@xxxxxxxxxxxx>
Date: Wed, 01 Jun 2005 13:33:39 -0700

> I suppose we can enable interrupts in tg3_irq_quiesce() after setting
> the SYNC bit.

Since the caller shuts down NAPI ->poll(), after setting the SYNC bit
we can just check the MAILBOX register, and if a '1' is there just
return.  Does one need to mask out the upper bits of the regiser in
order to avoid seeing the IRQ tag in such a comparison?

Another potential problem is if the chip is hung for some reason,
and even though an interrupt is asserted it does not send the
interrupt.  We'd hang in this case as well.  Therefore it may be
wise to add a timeout to the COMPLETE bit polling loop in order
to handle such cases properly.

<Prev in Thread] Current Thread [Next in Thread>