modules: check arch on qom lookup

With target-specific modules we can have multiple modules implementing
the same object.  Therefore we have to check the target arch on lookup
to find the correct module.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jose R. Ziviani <jziviani@suse.de>
Message-Id: <20210624103836.2382472-20-kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Gerd Hoffmann 2021-06-24 12:38:21 +02:00 committed by Paolo Bonzini
parent d7795d3cc5
commit ab0cfc3dcb

View File

@ -329,6 +329,9 @@ void module_load_qom_one(const char *type)
if (!modinfo->objs) {
continue;
}
if (!module_check_arch(modinfo)) {
continue;
}
for (sl = modinfo->objs; *sl != NULL; sl++) {
if (strcmp(type, *sl) == 0) {
module_load_one("", modinfo->name, false);
@ -349,6 +352,9 @@ void module_load_qom_all(void)
if (!modinfo->objs) {
continue;
}
if (!module_check_arch(modinfo)) {
continue;
}
module_load_one("", modinfo->name, false);
}
module_loaded_qom_all = true;