cvs commit: src/sys/dev/re if_re.c

Robert Watson rwatson at FreeBSD.org
Thu Aug 18 20:08:01 GMT 2005


On Thu, 18 Aug 2005, John Baldwin wrote:

> I've still yet to see what the real panic is.  For one thing, if the 
> foo_stop method does its jobs, the ethernet hardware shouldn't be 
> generating interrupts.  The stop method should be shutting the card down 
> (i.e. turning off the receiver and transmitter for example).  Is your 
> ethernet driver sharing an interrupt with another device and the other 
> device is interrupting?  In that case, the ethernet driver would have 
> the same panic if you did an 'ifconfig foo0 down' and then the other 
> device interrupted.  So, I think clearing IFF_UPP in foo_shutdown() is 
> wrong.  foo_stop() should really be sufficient, and foo_intr() should be 
> able to handle a spurious interrupt while the interface is stopped 
> without panicing since it already needs to do so to handle the shared 
> interrupt case.

Ideally, I'd like to see device drivers stop setting or clearing 
stack-owned bits, such as IFF_UP, IFF_PROMISC, etc.  However, we probably 
have a ways to go before we're there.

Robert N M Watson


More information about the cvs-src mailing list