Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
re: igc0 crash
> [ 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.
Home |
Main Index |
Thread Index |
Old Index