snd_uaudio: Fatal trap 12: page fault while in kernel mode

From: Fabian Keil <freebsd-listen_at_fabiankeil.de>
Date: Sat, 15 Aug 2009 17:43:39 +0200
I reproducible get the following panic less than a second after
inserting a Turtle Beach AudioAdvantage stick with the snd_uaudio
module loaded:

fk_at_r500 /usr/crash $kgdb /boot/kernel/kernel.symbols vmcore.0 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 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 "amd64-marcel-freebsd"...

Unread portion of the kernel message buffer:

cpuid = 0; apic id = 00
fault virtual address   = 0x20
fault code              = supervisor read data, page not present
instruction pointer     = 0x20:0xffffffff803f31c1
stack pointer           = 0x28:0xffffff803a393440
frame pointer           = 0x28:0xffffff803a393460
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = resume, IOPL = 0
current process         = 36 (usbus4)
panic: from debugger
cpuid = 0
Uptime: 2m12s
Dumping 1992 MB (5 chunks)
  chunk 0: 1MB (155 pages) ... ok
  chunk 1: 1990MB (509345 pages) 1974 1958 1942 1926 1910 1894 [...]... ok
  chunk 2: 2MB (273 pages) ... ok
  chunk 3: 1MB (184 pages)

Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /boot/kernel/zfs.ko.symbols...done.
done.
[...]
done.
Loaded symbols for /boot/kernel/snd_uaudio.ko
#0  doadump () at pcpu.h:223
223     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) where
#0  doadump () at pcpu.h:223
#1  0xffffffff803bb25d in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419
#2  0xffffffff803bb64c in panic (fmt=Variable "fmt" is not available.
) at /usr/src/sys/kern/kern_shutdown.c:575
#3  0xffffffff801eddf7 in db_panic (addr=Variable "addr" is not available.
) at /usr/src/sys/ddb/db_command.c:478
#4  0xffffffff801ee201 in db_command (last_cmdp=0xffffffff8081d240, cmd_table=Variable "cmd_table" is not available.
) at /usr/src/sys/ddb/db_command.c:445
#5  0xffffffff801ee450 in db_command_loop () at /usr/src/sys/ddb/db_command.c:498
#6  0xffffffff801f03a9 in db_trap (type=Variable "type" is not available.
) at /usr/src/sys/ddb/db_main.c:229
#7  0xffffffff803e6935 in kdb_trap (type=12, code=0, tf=0xffffff803a393390) at /usr/src/sys/kern/subr_kdb.c:534
#8  0xffffffff805ac48d in trap_fatal (frame=0xffffff803a393390, eva=Variable "eva" is not available.
) at /usr/src/sys/amd64/amd64/trap.c:847
#9  0xffffffff805ad04e in trap (frame=0xffffff803a393390) at /usr/src/sys/amd64/amd64/trap.c:345
#10 0xffffffff805943f3 in calltrap () at /usr/src/sys/amd64/amd64/exception.S:224
#11 0xffffffff803f31c1 in turnstile_broadcast (ts=0x0, queue=0) at /usr/src/sys/kern/subr_turnstile.c:831
#12 0xffffffff803aee70 in _mtx_unlock_sleep (m=0xffffffff81e37120, opts=Variable "opts" is not available.
) at /usr/src/sys/kern/kern_mutex.c:677
#13 0xffffffff80331d4f in usbd_do_request_flags (udev=0xffffff003fcfe000, mtx=0xffffffff81e37120, req=0xffffff803a393550, data=0xffffff803a393560, flags=0, actlen=0x0, 
    timeout=5000) at /usr/src/sys/dev/usb/usb_request.c:312
#14 0xffffffff824272e2 in uaudio_mixer_get (udev=Variable "udev" is not available.
) at /usr/src/sys/modules/sound/driver/uaudio/../../../../dev/sound/usb/uaudio.c:2961
#15 0xffffffff8242741a in uaudio_mixer_add_ctl (sc=0xffffff003f3c3000, mc=0xffffff803a3938a0) at /usr/src/sys/modules/sound/driver/uaudio/../../../../dev/sound/usb/uaudio.c:1604
#16 0xffffffff82429165 in uaudio_attach (dev=0xffffff003f723400) at /usr/src/sys/modules/sound/driver/uaudio/../../../../dev/sound/usb/uaudio.c:1944
#17 0xffffffff803e1569 in device_attach (dev=0xffffff003f723400) at device_if.h:178
#18 0xffffffff80326941 in usb_probe_and_attach_sub (udev=0xffffff003fcfe000, uaa=0xffffff803a393ae0) at /usr/src/sys/dev/usb/usb_device.c:1146
#19 0xffffffff80326dfd in usb_probe_and_attach (udev=0xffffff003fcfe000, iface_index=Variable "iface_index" is not available.
) at /usr/src/sys/dev/usb/usb_device.c:1305
#20 0xffffffff8032f7ca in uhub_explore (udev=0xffffff000380a000) at /usr/src/sys/dev/usb/usb_hub.c:238
#21 0xffffffff8031be61 in usb_bus_explore (pm=Variable "pm" is not available.
) at /usr/src/sys/dev/usb/controller/usb_controller.c:235
#22 0xffffffff803319f0 in usb_process (arg=Variable "arg" is not available.
) at /usr/src/sys/dev/usb/usb_process.c:161
#23 0xffffffff80398182 in fork_exit (callout=0xffffffff80331930 <usb_process>, arg=0xffffff80002dee88, frame=0xffffff803a393c80) at /usr/src/sys/kern/kern_fork.c:838
#24 0xffffffff805948ce in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:561
#25 0x0000000000000000 in ?? ()
#26 0x0000000000000000 in ?? ()
#27 0x0000000000000001 in ?? ()
#28 0x0000000000000000 in ?? ()

This is on:
FreeBSD 8.0-BETA2 #3: Fri Aug 14 15:19:08 CEST 2009 fk_at_r500.local:/usr/obj/usr/src/sys/ZOEY  amd64
but also happens with a slightly older kernel on i386.

Fabian

Received on Sat Aug 15 2009 - 13:43:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:53 UTC