qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v6 5/5] accel: abort if we fail to load the accelerator plugi


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v6 5/5] accel: abort if we fail to load the accelerator plugin
Date: Sat, 24 Sep 2022 14:35:35 +0200
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.1

On 24/9/22 01:21, Claudio Fontana wrote:
if QEMU is configured with modules enabled, it is possible that the
load of an accelerator module will fail.
Abort in this case, relying on module_object_class_by_name to report
the specific load error if any.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
  accel/accel-softmmu.c | 8 +++++++-
  1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/accel/accel-softmmu.c b/accel/accel-softmmu.c
index 67276e4f52..9fa4849f2c 100644
--- a/accel/accel-softmmu.c
+++ b/accel/accel-softmmu.c
@@ -66,6 +66,7 @@ void accel_init_ops_interfaces(AccelClass *ac)
  {
      const char *ac_name;
      char *ops_name;
+    ObjectClass *oc;
      AccelOpsClass *ops;
ac_name = object_class_get_name(OBJECT_CLASS(ac));
@@ -73,8 +74,13 @@ void accel_init_ops_interfaces(AccelClass *ac)
ops_name = g_strdup_printf("%s" ACCEL_OPS_SUFFIX, ac_name);
      ops = ACCEL_OPS_CLASS(module_object_class_by_name(ops_name));
+    oc = module_object_class_by_name(ops_name);
+    if (!oc) {
+        error_report("fatal: could not load module for type '%s'", ops_name);
+        abort();

I still think a coredump won't help at all to figure the problem here: a module is missing, we know its name. Anyhow I don't mind much, and this
can be cleaned later, so:

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

+    }
      g_free(ops_name);
-
+    ops = ACCEL_OPS_CLASS(oc);
      /*
       * all accelerators need to define ops, providing at least a mandatory
       * non-NULL create_vcpu_thread operation.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]