[Bug 286134] ig4_iic: "excl->ushare" panic when entering kdb

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 16 Apr 2025 09:24:32 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=286134

            Bug ID: 286134
           Summary: ig4_iic: "excl->ushare" panic when entering kdb
           Product: Base System
           Version: 15.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: trasz@FreeBSD.org

Running "sysctl debug.kdb.enter=1", exiting kdb, and running it the second time
results in a panic.  Same thing happens when I do it once, then break into ddb
using ctrl-alt-esc.  Using ctrl-alt-esc repeatedly doesn't seem to trigger the
panic, it seems to depend on that sysctl to reproduce.

#3  0xffffffff80b58807 in vpanic (fmt=0xffffffff812612c0 "excl->ushare",
ap=ap@entry=0xfffffe00d786a510) at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_shutdown.c:979
#4  0xffffffff80b58633 in panic (fmt=<unavailable>) at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_shutdown.c:892
#5  0xffffffff80bcf719 in witness_unlock (lock=lock@entry=0xfffff8000166ee68,
flags=flags@entry=0, file=file@entry=0xffffffff83aa6110
"/usr/home/trasz/git/freebsd-src/sys/dev/ichiic/ig4_iic.c",
    line=line@entry=683) at
/usr/home/trasz/git/freebsd-src/sys/kern/subr_witness.c:1708
#6  0xffffffff80b64d7d in _sx_sunlock_int (sx=sx@entry=0xfffff8000166ee68,
file=0xffffffff83aa6110
"/usr/home/trasz/git/freebsd-src/sys/dev/ichiic/ig4_iic.c",
line=line@entry=683)
    at /usr/home/trasz/git/freebsd-src/sys/kern/kern_sx.c:1375
#7  0xffffffff80b64f2a in _sx_sunlock (sx=<unavailable>,
sx@entry=0xfffff8000166ee68, file=<unavailable>, line=<unavailable>,
line@entry=683) at /usr/home/trasz/git/freebsd-src/sys/kern/kern_sx.c:1393
#8  0xffffffff83aa432b in ig4iic_transfer (dev=<optimized out>, msgs=<optimized
out>, nmsgs=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/dev/ichiic/ig4_iic.c:683
#9  0xffffffff83ae862e in iichid_cmd_read (sc=0xfffff80001670800,
buf=0xfffff8000120db80, maxlen=81, actual_len=<unavailable>,
actual_len@entry=0xfffffe00d786a684)
    at /usr/home/trasz/git/freebsd-src/sys/dev/iicbus/iichid.c:286
#10 0xffffffff83ae7c27 in iichid_intr_poll (dev=<optimized out>,
child=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/dev/iicbus/iichid.c:920
#11 0xffffffff80651ffb in hkbd_do_poll (sc=sc@entry=0xfffffe00dcc1c000,
wait=wait@entry=0 '\000') at
/usr/home/trasz/git/freebsd-src/sys/dev/hid/hkbd.c:436
#12 0xffffffff80651b50 in hkbd_check (kbd=0xfffffe00dcc1c008, kbd@entry=<error
reading variable: value is not available>) at
/usr/home/trasz/git/freebsd-src/sys/dev/hid/hkbd.c:1205
#13 hkbd_check_char_locked (kbd=0xfffffe00dcc1c008) at
/usr/home/trasz/git/freebsd-src/sys/dev/hid/hkbd.c:1233
#14 hkbd_check_char (kbd=0xfffffe00dcc1c008, kbd@entry=<error reading variable:
value is not available>) at
/usr/home/trasz/git/freebsd-src/sys/dev/hid/hkbd.c:1242
#15 0xffffffff806d48e2 in kbdd_check_char (kbd=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/dev/kbd/kbdreg.h:267
#16 kbdmux_read_char (kbd=0xfffff80001292a80, kbd@entry=<error reading
variable: value is not available>, wait=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/dev/kbdmux/kbdmux.c:681
#17 0xffffffff80999b5a in kbdd_read_char (kbd=0xfffff80001292a80,
kbd@entry=<error reading variable: value is not available>, wait=0) at
/usr/home/trasz/git/freebsd-src/sys/dev/kbd/kbdreg.h:260
#18 vtterm_cngetc (tm=<unavailable>, tm@entry=<error reading variable: value is
not available>) at /usr/home/trasz/git/freebsd-src/sys/dev/vt/vt_core.c:1938
#19 0xffffffff80ae451c in cncheckc () at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_cons.c:466
#20 0xffffffff804a69a5 in db_check_interrupt () at
/usr/home/trasz/git/freebsd-src/sys/ddb/db_input.c:431
#21 0xffffffff804a7e4e in db_putc (c=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/ddb/db_output.c:185
#22 0xffffffff80bafdb6 in kvprintf (fmt=<optimized out>,
func=0xffffffff804a7af0 <db_putchar>, arg=arg@entry=0xfffffe00d786a900,
radix=16, ap=ap@entry=0xfffffe00d786a950)
    at /usr/home/trasz/git/freebsd-src/sys/kern/subr_prf.c:696
#23 0xffffffff804a7adc in db_printf (fmt=<unavailable>) at
/usr/home/trasz/git/freebsd-src/sys/ddb/db_output.c:337
#24 0xffffffff804ab5c7 in db_print_thread () at
/usr/home/trasz/git/freebsd-src/sys/ddb/db_thread.c:48
#25 0xffffffff804a78ef in db_trap (type=<optimized out>, code=<optimized out>)
at /usr/home/trasz/git/freebsd-src/sys/ddb/db_main.c:256
#26 0xffffffff80ba89af in kdb_trap (type=type@entry=3, code=code@entry=0,
tf=tf@entry=0xfffffe00d786ac80) at
/usr/home/trasz/git/freebsd-src/sys/kern/subr_kdb.c:790
#27 0xffffffff8109656b in trap (frame=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/amd64/amd64/trap.c:617
#28 <signal handler called>
#29 kdb_enter (why=<optimized out>, msg=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/kern/subr_kdb.c:556
#30 0xffffffff8099c831 in vt_machine_kbdevent (vd=<optimized out>, c=<optimized
out>) at /usr/home/trasz/git/freebsd-src/sys/dev/vt/vt_core.c:764
#31 vt_processkey (kbd=0xfffff80001292a80, vd=0xffffffff818a9cb8 <vt_consdev>,
c=-2147483514) at /usr/home/trasz/git/freebsd-src/sys/dev/vt/vt_core.c:906
#32 vt_kbdevent (kbd=0xfffff80001292a80, event=<optimized out>,
arg=0xffffffff818a9cb8 <vt_consdev>) at
/usr/home/trasz/git/freebsd-src/sys/dev/vt/vt_core.c:1033
#33 0xffffffff806d466d in kbdmux_intr (kbd=0xfffff80001292a80, arg=<optimized
out>) at /usr/home/trasz/git/freebsd-src/sys/dev/kbdmux/kbdmux.c:565
#34 0xffffffff80bc0d12 in taskqueue_run_locked
(queue=queue@entry=0xfffff800ba8b6c00) at
/usr/home/trasz/git/freebsd-src/sys/kern/subr_taskqueue.c:517
#35 0xffffffff80bc0b0d in taskqueue_run (queue=0xfffff800ba8b6c00) at
/usr/home/trasz/git/freebsd-src/sys/kern/subr_taskqueue.c:532
#36 0xffffffff80b0e856 in intr_event_execute_handlers (ie=0xfffff8000143aa00,
p=<optimized out>) at /usr/home/trasz/git/freebsd-src/sys/kern/kern_intr.c:1191
#37 ithread_execute_handlers (ie=0xfffff8000143aa00, p=<optimized out>) at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_intr.c:1204
#38 ithread_loop (arg=arg@entry=0xfffff800011fdf40) at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_intr.c:1297
#39 0xffffffff80b0abd2 in fork_exit (callout=0xffffffff80b0e5f0 <ithread_loop>,
arg=0xfffff800011fdf40, frame=0xfffffe00d786af40) at
/usr/home/trasz/git/freebsd-src/sys/kern/kern_fork.c:1152
#40 <signal handler called>

-- 
You are receiving this mail because:
You are the assignee for the bug.