If module_load_one, module_load_file fail for any reason (permissions, plugin not installed, ...), we need to provide some notification to the user to understand that this is happening; otherwise the errors reported on initialization will make no sense to the user.
Signed-off-by: Claudio Fontana <cfont...@suse.de> --- accel/accel-softmmu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/accel/accel-softmmu.c b/accel/accel-softmmu.c index 67276e4f52..807708ee86 100644 --- a/accel/accel-softmmu.c +++ b/accel/accel-softmmu.c @@ -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 find module object of type \"%s\", " + "plugin might not be loaded correctly", ops_name); + exit(EXIT_FAILURE); + } 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. -- 2.26.2