DragonFly bugs List (threaded) for 2007-05
DragonFly BSD
DragonFly bugs List (threaded) for 2007-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: kernel panic


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 May 2007 12:49:20 -0700 (PDT)

:The strange thing is I was rebooting my laptop (via icewm) when this
:occurred.  The interface is re(4) according to the kernel buffer output
:which follows.  
:
:Joe

    I'm guessing there's an issue with re_init() or re_stop() that is
    possibly being triggered by setting the IP address.

    re_init() for the RE interface looks like is doing some dangerous
    things... if there is DMA still operating while it is trying to
    reinitialize the device, that could be causing the NMI.  It seems to be
    writing 0x00 to the command register which I guess is supposed to stop
    device operation, but it is not waiting for the device to actually stop
    operating before it begins to free the TX and RX rings.

    Most network controllers these days are actually microcontrollers,
    which means that commands do not instantaniously take effect when
    you write to the command register.  Usually only the interrupt
    control registers are hardwired.

    I got two questions.  First, when you ifconfig the interface with a
    new IP address does it normally pause before returning?  That would
    indicate that is is in fact doing a full device reset when configuring
    an IP address.  Second, can you reproduce the problem?  Perhaps by
    re-configuring the device's IP address over and over again in a loop?

    We may be able to 'fix' the problem simply by introducing a delay
    after writing 0x00 to RE_COMMAND, or by calling re_reset() as part
    of re_stop(), but I'd like a way to verify that doing so will actually
    fix the problem.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]