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.