panic when removing wi card

From: AIDA Shinra <shinra_at_j10n.org>
Date: Fri, 11 Apr 2003 18:38:59 +0900
When I remove my wi pccard (BUFFALO WLI-PCM-S11) the kernel crashes in
100% cases. Kldunload if_wi and APM sleep also make the same panic. I
enabled OLDCARD and hw.pcic.intr_path=1.

After the card is removed (or kldunload or sleep) I get this message
and panic:

wi0: wi_cmd: busy bit won't clear.
wi0: timeout in wi_seek to fc80/0
wi0: timeout in wi_seek to fc80/0
wi0: timeout in wi_seek to fc80/0
Sleeping on "itrmh" with the following non-sleepablelocks held:
exclusive sleep mutex wi0 (network driver) r = 0 (0xc1c48638) locked _at_ /usr/freebsd/src/sys/dev/wi/if_wi.c:1029
panic: sleeping thread owns a mutex

The backtrace is here:

GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-undermydesk-freebsd"...
panic: from debugger
panic messages:
---
panic: sleeping thread owns a mutex
panic: from debugger
Uptime: 2m14s
Dumping 119 MB
ata0: resetting devices ..
done
 16 32 48 64 80 96 112
---
Reading symbols from /boot/kernel/snd_pcm.ko...done.
Loaded symbols for /boot/kernel/snd_pcm.ko
Reading symbols from /boot/kernel/snd_via82c686.ko...done.
Loaded symbols for /boot/kernel/snd_via82c686.ko
Reading symbols from /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/apm/apm.ko.debug...done.
Loaded symbols for /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/apm/apm.ko.debug
Reading symbols from /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/ipfw/ipfw.ko.debug...done.
Loaded symbols for /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/ipfw/ipfw.ko.debug
Reading symbols from /boot/kernel/logo_saver.ko...done.
Loaded symbols for /boot/kernel/logo_saver.ko
Reading symbols from /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/linux/linux.ko.debug...done.
Loaded symbols for /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/linux/linux.ko.debug
Reading symbols from /boot/kernel/if_wi.ko.debug...done.
Loaded symbols for /boot/kernel/if_wi.ko.debug
Reading symbols from /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/wlan/wlan.ko.debug...done.
Loaded symbols for /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/wlan/wlan.ko.debug
Reading symbols from /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/rc4/rc4.ko.debug...done.
Loaded symbols for /usr/obj/usr/freebsd/src/sys/LOCAL/modules/usr/freebsd/src/sys/modules/rc4/rc4.ko.debug
#0  doadump () at /usr/freebsd/src/sys/kern/kern_shutdown.c:239
239		dumping++;
(kgdb) backtrace 
#0  doadump () at /usr/freebsd/src/sys/kern/kern_shutdown.c:239
#1  0xc01f6cb3 in boot (howto=260) at /usr/freebsd/src/sys/kern/kern_shutdown.c:371
#2  0xc01f6fb3 in panic () at /usr/freebsd/src/sys/kern/kern_shutdown.c:542
#3  0xc014e672 in db_panic () at /usr/freebsd/src/sys/ddb/db_command.c:448
#4  0xc014e5f2 in db_command (last_cmdp=0xc03b6ac0, cmd_table=0x0, aux_cmd_tablep=0xc03b06a0, 
    aux_cmd_tablep_end=0xc03b06a4) at /usr/freebsd/src/sys/ddb/db_command.c:346
#5  0xc014e706 in db_command_loop () at /usr/freebsd/src/sys/ddb/db_command.c:470
#6  0xc015149a in db_trap (type=3, code=0) at /usr/freebsd/src/sys/ddb/db_trap.c:72
#7  0xc0336f65 in kdb_trap (type=3, code=0, regs=0xccd96bc8)
    at /usr/freebsd/src/sys/i386/i386/db_interface.c:170
#8  0xc034814a in trap (frame=
      {tf_fs = -1069678568, tf_es = 16, tf_ds = -1070006256, tf_edi = -1047390432, tf_esi = 256, tf_ebp = -858166252, tf_isp = -858166284, tf_ebx = 0, tf_edx = 0, tf_ecx = 1, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip = -1070370300, tf_cs = 8, tf_eflags = 646, tf_esp = -1069901921, tf_ss = -1069993315})
    at /usr/freebsd/src/sys/i386/i386/trap.c:602
#9  0xc03388b8 in calltrap () at {standard input}:96
#10 0xc01f6f9b in panic (fmt=0x0) at /usr/freebsd/src/sys/kern/kern_shutdown.c:528
#11 0xc01ed18b in propagate_priority (td=0x0) at /usr/freebsd/src/sys/kern/kern_mutex.c:142
#12 0xc01ed919 in _mtx_lock_sleep (m=0xc1c48638, opts=0, 
    file=0xc1c0189c "/usr/freebsd/src/sys/dev/wi/if_wi.c", line=563)
    at /usr/freebsd/src/sys/kern/kern_mutex.c:630
#13 0xc01ed3b7 in _mtx_lock_flags (m=0xc1c48638, opts=0, 
    file=0xc1c0189c "/usr/freebsd/src/sys/dev/wi/if_wi.c", line=563)
    at /usr/freebsd/src/sys/kern/kern_mutex.c:333
#14 0xc1be9f74 in wi_intr (arg=0xc1c48000) at /usr/freebsd/src/sys/dev/wi/if_wi.c:563
#15 0xc01e3772 in ithread_loop (arg=0xc1b7e800) at /usr/freebsd/src/sys/kern/kern_intr.c:536
#16 0xc01e2844 in fork_exit (callout=0xc1bde080, arg=0x0, frame=0x0)
    at /usr/freebsd/src/sys/kern/kern_fork.c:796
(kgdb) up 14
#14 0xc1be9f74 in wi_intr (arg=0xc1c48000) at /usr/freebsd/src/sys/dev/wi/if_wi.c:563
563		WI_LOCK(sc);
(kgdb) list
558		struct wi_softc *sc = arg;
559		struct ifnet *ifp = &sc->sc_ic.ic_if;
560		u_int16_t status;
561		WI_LOCK_DECL();
562	
563		WI_LOCK(sc);
564	
565		if (sc->wi_gone || (ifp->if_flags & IFF_UP) == 0) {
566			CSR_WRITE_2(sc, WI_INT_EN, 0);
567			CSR_WRITE_2(sc, WI_EVENT_ACK, ~0);
(kgdb) q
Received on Fri Apr 11 2003 - 00:39:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:03 UTC