re: igc0 crash

matthew green <[email protected]>
Newsgroups gmane.os.netbsd.current
Message-ID <[email protected]>
> [ 22903.9235251] panic: kernel diagnostic assertion "interlock == NULL || mutex_owned(interlock)" failed: file "/build/netbsd-local/src_ro/sys/kern/kern_time
> out.c", line 558[ 22903.9235251] cpu0: Begin traceback...
> [ 22903.9235251] vpanic() at netbsd:vpanic+0x189
> [ 22903.9235251] kern_assert() at netbsd:kern_assert+0x4b
> [ 22903.9235251] callout_halt() at netbsd:callout_halt+0x191
> [ 22903.9235251] igc_stop_locked() at netbsd:igc_stop_locked+0x1a8
> [ 22903.9235251] igc_stop() at netbsd:igc_stop+0x22
> [ 22903.9235251] ether_ioctl_reinit() at netbsd:ether_ioctl_reinit+0x72
> [ 22903.9235251] igc_ioctl() at netbsd:igc_ioctl+0xc6
> [ 22903.9235251] doifioctl() at netbsd:doifioctl+0xad3
> [ 22903.9235251] sys_ioctl() at netbsd:sys_ioctl+0x1fa
> [ 22903.9235251] syscall() at netbsd:syscall+0x9d
> [ 22903.9235251] --- syscall (number 54) ---
> [ 22903.9235251] netbsd:syscall+0x9d:
> [ 22903.9235251] cpu0: End traceback...

this seems very strange to me, should be impossible?

1891         mutex_exit(&sc->sc_core_lock);
1892         igc_barrier_handle_queue(sc);
1893         mutex_enter(&sc->sc_core_lock);
1894
1895         sc->sc_core_stopping = true;
1896
1897         igc_disable_intr(sc);
1898
1899         callout_halt(&sc->sc_tick_ch, &sc->sc_core_lock);

and igc_disable_intr() only writes to device regs.  ie, there
should be no way for sc_core_lock to be not held here.


.mrg.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.