cvs commit: src/sys/dev/re if_re.c
Poul-Henning Kamp
phk at phk.freebsd.dk
Thu Aug 18 22:03:28 GMT 2005
In message <20050818211150.W32515 at fledge.watson.org>, Robert Watson writes:
>
>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.
I belive if the driver doesn't to this, you have to explicity specify
"up" on the ifconfig command line.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the cvs-all
mailing list