Skip to content
Snippets Groups Projects
Commit 81d8ccb1 authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Paolo Bonzini
Browse files

module: return success on module load


Let the caller know of load success.

Note that this also changes slightly the behaviour of the function to
try loading on subsequent calls if the previous ones failed.

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 90629122
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,6 @@ void register_module_init(void (*fn)(void), module_init_type type);
void register_dso_module_init(void (*fn)(void), module_init_type type);
void module_call_init(module_init_type type);
void module_load_one(const char *prefix, const char *lib_name);
bool module_load_one(const char *prefix, const char *lib_name);
#endif
......@@ -156,8 +156,10 @@ out:
}
#endif
void module_load_one(const char *prefix, const char *lib_name)
bool module_load_one(const char *prefix, const char *lib_name)
{
bool success = false;
#ifdef CONFIG_MODULES
char *fname = NULL;
char *exec_dir;
......@@ -170,7 +172,7 @@ void module_load_one(const char *prefix, const char *lib_name)
if (!g_module_supported()) {
fprintf(stderr, "Module is not supported by system.\n");
return;
return false;
}
if (!loaded_modules) {
......@@ -181,7 +183,7 @@ void module_load_one(const char *prefix, const char *lib_name)
if (!g_hash_table_add(loaded_modules, module_name)) {
g_free(module_name);
return;
return true;
}
exec_dir = qemu_get_exec_dir();
......@@ -205,13 +207,19 @@ void module_load_one(const char *prefix, const char *lib_name)
fname = NULL;
/* Try loading until loaded a module file */
if (!ret) {
success = true;
break;
}
}
if (!success) {
g_hash_table_remove(loaded_modules, module_name);
}
for (i = 0; i < n_dirs; i++) {
g_free(dirs[i]);
}
#endif
return success;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment