summaryrefslogtreecommitdiffstats
path: root/accel
diff options
context:
space:
mode:
authorClaudio Fontana2022-09-29 11:30:35 +0200
committerPaolo Bonzini2022-11-06 09:48:50 +0100
commit5141e9a23fc9a890d66a5700920a5ffd8885121f (patch)
tree47682d06b1dad406adcd23ddc40073eaa6b1b726 /accel
parentdmg: warn when opening dmg images containing blocks of unknown type (diff)
downloadqemu-5141e9a23fc9a890d66a5700920a5ffd8885121f.tar.gz
qemu-5141e9a23fc9a890d66a5700920a5ffd8885121f.tar.xz
qemu-5141e9a23fc9a890d66a5700920a5ffd8885121f.zip
accel: abort if we fail to load the accelerator plugin
if QEMU is configured with modules enabled, it is possible that the load of an accelerator module will fail. Exit 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> [claudio: changed abort() to exit(1)] Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20220929093035.4231-6-cfontana@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'accel')
-rw-r--r--accel/accel-softmmu.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/accel/accel-softmmu.c b/accel/accel-softmmu.c
index 67276e4f52..f9cdafb148 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);
+ exit(1);
+ }
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.