[PATCH] system: fix assertion when cannot get/set rlimit

Nikita Ostrenkov posted 1 patch 8 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250312161603.24820-1-n.ostrenkov@gmail.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>
system/runstate.c | 1 -
system/vl.c       | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)
[PATCH] system: fix assertion when cannot get/set rlimit
Posted by Nikita Ostrenkov 8 months, 1 week ago
If cannot get/set rlinit warn_print called, which uses monitor_lock mutex. monitor_lock mutex initialized in monitor_init_globals, then monitor_init_globals should be called before os_setup_limits.

Signed-off-by: Nikita Ostrenkov <n.ostrenkov@gmail.com>
---
 system/runstate.c | 1 -
 system/vl.c       | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/system/runstate.c b/system/runstate.c
index 272801d307..de01cb9833 100644
--- a/system/runstate.c
+++ b/system/runstate.c
@@ -874,7 +874,6 @@ void qemu_init_subsystems(void)
     runstate_init();
     precopy_infrastructure_init();
     postcopy_infrastructure_init();
-    monitor_init_globals();
 
     if (qcrypto_init(&err) < 0) {
         error_reportf_err(err, "cannot initialize crypto: ");
diff --git a/system/vl.c b/system/vl.c
index 04f78466c4..0742a3b407 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -2885,6 +2885,8 @@ void qemu_init(int argc, char **argv)
     error_init(argv[0]);
     qemu_init_exec_dir(argv[0]);
 
+    monitor_init_globals();
+
     os_setup_limits();
 
 #ifdef CONFIG_MODULES
-- 
2.34.1