diff options
author | Dan McDonald <danmcd@mnx.io> | 2022-09-28 15:21:02 -0400 |
---|---|---|
committer | Dan McDonald <danmcd@mnx.io> | 2022-09-28 15:21:02 -0400 |
commit | 7d35233e629cfee42ee57e76f6bbd1e3f6d2c64a (patch) | |
tree | d768f7306d740d19ec09de06a89857600b644c0b /usr/src | |
parent | 65793f4241a4a0b002c42e1829d92d40ea106762 (diff) | |
parent | b7335573a496fd332333ccc5718fb23ea11815ba (diff) | |
download | illumos-joyent-7d35233e629cfee42ee57e76f6bbd1e3f6d2c64a.tar.gz |
[illumos-gate merge]
commit b7335573a496fd332333ccc5718fb23ea11815ba
15021 upanic recursive mutex enter
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/exec/elf/elf_notes.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/uts/common/exec/elf/elf_notes.c b/usr/src/uts/common/exec/elf/elf_notes.c index 1e591d9455..0a0d405eba 100644 --- a/usr/src/uts/common/exec/elf/elf_notes.c +++ b/usr/src/uts/common/exec/elf/elf_notes.c @@ -28,6 +28,7 @@ * Copyright 2012 DEY Storage Systems, Inc. All rights reserved. * Copyright 2018 Joyent, Inc. * Copyright 2020 OmniOS Community Edition (OmniOSce) Association. + * Copyright 2022 Oxide Computer Company */ #include <sys/types.h> @@ -628,14 +629,15 @@ write_elfnotes(proc_t *p, int sig, vnode_t *vp, offset_t offset, PRUPANIC_BUFLEN); } + mutex_exit(&p->p_lock); error = elfnote(vp, &offset, NT_UPANIC, sizeof (prupanic_t), &bigwad->upanic, rlimit, credp); if (error != 0) { - mutex_exit(&p->p_lock); goto done; } + } else { + mutex_exit(&p->p_lock); } - mutex_exit(&p->p_lock); done: kmem_free(bigwad, bigsize); |