Thomas Klausner writes: > panic: kernel diagnostic assertion "!cpu_softintr_p()" failed: file > "/usr/src/sys/kern/subr_kmem.c", line 451 > > gdb says: > > #10 0xffffffff80e3551e in vpanic (fmt=0xffffffff813a1880 "kernel %sassertion > \"%s\" failed: file \"%s\", line %d ", ap=ap@entry=0xffffae2110a93e08) > at /usr/src/sys/kern/subr_prf.c:286 > #11 0xffffffff80ffab6f in kern_assert (fmt=fmt@entry=0xffffffff813a1880 > "kernel %sassertion \"%s\" failed: file \"%s\", line %d ") > at /usr/src/sys/lib/libkern/kern_assert.c:51 > #12 0xffffffff80e27e15 in kmem_free (p=0xffff9afa82af5b80, size=64) at > /usr/src/sys/kern/subr_kmem.c:451 > #13 0xffffffff80df5960 in rw_obj_free (lock=0xffff9afa82af5b80) at > /usr/src/sys/kern/kern_rwlock_obj.c:127 > #14 0xffffffff80d825d3 in uvm_anon_release (anon=<optimized out>) at > /usr/src/sys/uvm/uvm_anon.c:385
i think this is a new bug. this line changed from: 1.11 (ad 12-Sep-23): pool_cache_put(rw_obj_cache, ro); to 1.12 (ad 23-Sep-23): kmem_free(ro, sizeof(*ro)); i guess it just should be kmem_free_intr(), as pool_cache is intr-safe as well. .mrg.