mirror of https://gitee.com/openkylin/qemu.git
util/oslib-posix: Fix missing unlock in the error path of os_mem_prealloc()
We're missing an unlock in case installing the signal handler failed.
Fortunately, we barely see this error in real life.
Fixes: a960d6642d
("util/oslib-posix: Support concurrent os_mem_prealloc() invocation")
Fixes: CID 1468941
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Pankaj Gupta <pankaj.gupta@ionos.com>
Cc: Daniel P. Berrangé <berrange@redhat.com>
Cc: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20220111120830.119912-1-david@redhat.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta@ionos.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a4752a51f1
commit
dd4fc60585
|
@ -683,6 +683,7 @@ void os_mem_prealloc(int fd, char *area, size_t memory, int smp_cpus,
|
||||||
|
|
||||||
ret = sigaction(SIGBUS, &act, &sigbus_oldact);
|
ret = sigaction(SIGBUS, &act, &sigbus_oldact);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
qemu_mutex_unlock(&sigbus_mutex);
|
||||||
error_setg_errno(errp, errno,
|
error_setg_errno(errp, errno,
|
||||||
"os_mem_prealloc: failed to install signal handler");
|
"os_mem_prealloc: failed to install signal handler");
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue