NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: kern/43439: mount_null panic: lockdebug_wantlock: locking against myself



> lock address : 0xffff80004ba43ab0 type     :     sleep/adaptive
> initialized  : 0xffffffff805c72af
> shared holds :                  0 exclusive:                  1
> shares wanted:                  0 exclusive:                  1
> current cpu  :                  1 last held:                  1
> current lwp  : 0xffff80004b8b0800 last held: 0xffff80004b8b0800
> last locked  : 0xffffffff805c4dc6 unlocked : 0xffffffff805c4e3c
> owner/count  : 0xffff80004b8b0800 flags    : 0x0000000000000004

these addresses work out to be:

0xffffffff805c72af is in vnalloc (/usr/src/sys/kern/vfs_subr.c:723).
718             if (mp != NULL) {
719                     vp->v_mount = mp;
720                     vp->v_type = VBAD;
721                     vp->v_iflag = VI_MARKER;
722             } else {
723                     rw_init(&vp->v_lock.vl_lock);
724             }
725
726             return vp;
727     }

0xffffffff805c4dc6 is in vlockmgr (/usr/src/sys/kern/vfs_subr.c:2945).
2940                    }
2941                    rw_enter(&vl->vl_lock, RW_READER);
2942                    return 0;
2943
2944            case LK_EXCLUSIVE:
2945                    if (rw_tryenter(&vl->vl_lock, RW_WRITER)) {
2946                            return 0;
2947                    }
2948                    if ((vl->vl_canrecurse || (flags & LK_CANRECURSE) != 0) 
&&
2949                        rw_write_held(&vl->vl_lock)) {

0xffffffff805c4e3c is in vlockmgr (/usr/src/sys/kern/vfs_subr.c:2965).
2960                    if (vl->vl_recursecnt != 0) {
2961                            KASSERT(rw_write_held(&vl->vl_lock));
2962                            vl->vl_recursecnt--;
2963                            return 0;
2964                    }
2965                    rw_exit(&vl->vl_lock);
2966                    return 0;
2967
2968            default:
2969                    panic("vlockmgr: flags %x", flags);



Home | Main Index | Thread Index | Old Index