Skip to content

Commit

Permalink
accel: abort if we fail to load the accelerator plugin
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Claudio Fontana authored and bonzini committed Nov 6, 2022
1 parent 971974f commit 5141e9a
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion accel/accel-softmmu.c
Expand Up @@ -66,15 +66,21 @@ 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));
g_assert(ac_name != NULL);

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.
Expand Down

0 comments on commit 5141e9a

Please sign in to comment.