Ion-Mihai Tetcu
2005-Nov-30 19:41 UTC
[backtrace] (snd_solo) mtx_lock_sleep: recursed on non-recursive mutex
Hi, In my quest to find an other sound card that works with skype, I salvaged an ESS Solo-1 (ES1938S H209). Trying to play anything through it results from "pcm channel dead" to hard freezes and ,the last time I got the panic bellow. Any chance to make it work or should I keep searching ? FreeBSD it.buh.tecnik93.com 6.0-STABLE FreeBSD 6.0-STABLE #4: Wed Nov 16 15:38:12 EET 2005 Unread portion of the kernel message buffer: panic: _mtx_lock_sleep: recursed on non-recursive mutex pcm0 @ /usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sound.c:381 KDB: stack backtrace: panic(c066692c,c2e194b0,c07eac3f,17d,c2e1f4c0) at panic+0x13a _mtx_lock_sleep(c2e1f4c0,c2d08000,0,c07eac3f,17d) at _mtx_lock_sleep+0x131 _mtx_lock_flags(c2e1f4c0,0,c07eac3f,17d,0) at _mtx_lock_flags+0xae pcm_chn_create(c2d99200,c26b1d80,c07eeac4,2,c26b1d80) at pcm_chn_create+0xb5 vchan_create(c26b1d80,8,c07eac3f,bf,3cb) at vchan_create+0x79 pcm_chnalloc(c2d99200,1,3cb,ffffffff,0) at pcm_chnalloc+0x10c dsp_open(c2737e00,6,2000,c2d08000,0) at dsp_open+0x20b giant_open(c2737e00,6,2000,c2d08000,c2737e00) at giant_open+0x4f devfs_open(ef80ba50,ef80bd04,6) at devfs_open+0x251 VOP_OPEN_APV(c0690540,ef80ba50,c0670b57,ef80ba60,0) at VOP_OPEN_APV+0x73 vn_open_cred(ef80bbc0,ef80bcc0,0,c2d2cb00,3) at vn_open_cred+0x359 vn_open(ef80bbc0,ef80bcc0,0,3,c0679b06) at vn_open+0x33 kern_open(c2d08000,280b99f6,0,6,0) at kern_open+0xd4 open(c2d08000,ef80bd04,c,418,3) at open+0x36 syscall(3b,3b,3b,1021,280b99f6) at syscall+0x13d Xint0x80_syscall() at Xint0x80_syscall+0x1f --- syscall (5, FreeBSD ELF32, open), eip = 0x2819a3f7, esp = 0xbfbfe9ec, ebp = 0xbfbfea18 --- KDB: enter: panic Dumping 1023 MB (2 chunks) chunk 0: 1MB (159 pages) ... ok chunk 1: 1023MB (261872 pages) 1007 991 975 959 943 927 911 895 879 863 847 831 815 799 783 767 751 735 719 703 687 671 655 639 623 607 591 575 559 543 527 511 495 479 463 447 431 415 399 383 367 351 335 319 303 287 271 255 239 223 207 191 175 159 143 127 111 95 79 63 47 31 15 #0 doadump () at pcpu.h:165 165 pcpu.h: No such file or directory. in pcpu.h (kgdb) bt #0 doadump () at pcpu.h:165 #1 0xc04444d7 in db_fncall (dummy1=-276777220, dummy2=0, dummy3=16, dummy4=0xef80b6f4 "??a?\237tf?\017?g?") at /usr/src/sys/ddb/db_command.c:492 #2 0xc0444970 in db_command_loop () at /usr/src/sys/ddb/db_command.c:350 #3 0xc0446794 in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_main.c:221 #4 0xc04f4312 in kdb_trap (type=0, code=0, tf=0xef80b828) at /usr/src/sys/kern/subr_kdb.c:473 #5 0xc0632697 in trap (frame {tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 256, tf_esi = 1, tf_ebp = -276776848, tf_isp = -276776876, tf_ebx = 1, tf_edx = 0, tf_ecx = -1066685504, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip = -1068548478, tf_cs = 32, tf_eflags = 646, tf_esp = -1067019002, tf_ss = -1067027503}) at /usr/src/sys/i386/i386/trap.c:591 #6 0xc06201ca in calltrap () at /usr/src/sys/i386/i386/exception.s:139 #7 0xc04f3e82 in kdb_enter (msg=0x12 <Address 0x12 out of bounds>) at cpufunc.h:60 #8 0xc04d785c in panic (fmt=0x1 <Address 0x1 out of bounds>) at /usr/src/sys/kern/kern_shutdown.c:539 #9 0xc04ce231 in _mtx_lock_sleep (m=0xc2e1f4c0, tid=3268444160, opts=0, file=0x0, line=0) at /usr/src/sys/kern/kern_mutex.c:490 #10 0xc04ce2ee in _mtx_lock_flags (m=0xc2e1f4c0, opts=8, file=0xc07eac3f "/usr/src/sys/modules/sound/sound/../../../dev/sound/pcm/sound.c", line=381) at /usr/src/sys/kern/kern_mutex.c:276 #11 0xc07e7425 in ?? () #12 0xc2e1f4c0 in ?? () ......... ---Type <return> to continue, or q <return> to quit---q Quit (kgdb) l *0xc04ce2ee 0xc04ce2ee is in _mtx_lock_flags (/usr/src/sys/kern/kern_mutex.c:279). 274 WITNESS_CHECKORDER(&m->mtx_object, opts | LOP_NEWORDER | LOP_EXCLUSIVE, 275 file, line); 276 _get_sleep_lock(m, curthread, opts, file, line); 277 LOCK_LOG_LOCK("LOCK", &m->mtx_object, opts, m->mtx_recurse, file, 278 line); 279 WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file, line); 280 #ifdef MUTEX_PROFILING 281 /* don't reset the timer when/if recursing */ 282 if (m->mtx_acqtime == 0) { 283 m->mtx_filename = file; Thanks, -- IOnut - Unregistered ;) FreeBSD "user" "Intellectual Property" is nowhere near as valuable as "Intellect" BOFH excuse #379: We've picked COBOL as the language of choice