|
@@ -270,12 +270,13 @@ static int kernel_get_module_dso(const char *module, struct dso **pdso)
|
|
|
int ret = 0;
|
|
|
|
|
|
if (module) {
|
|
|
- list_for_each_entry(dso, &host_machine->dsos.head, node) {
|
|
|
- if (!dso->kernel)
|
|
|
- continue;
|
|
|
- if (strncmp(dso->short_name + 1, module,
|
|
|
- dso->short_name_len - 2) == 0)
|
|
|
- goto found;
|
|
|
+ char module_name[128];
|
|
|
+
|
|
|
+ snprintf(module_name, sizeof(module_name), "[%s]", module);
|
|
|
+ map = map_groups__find_by_name(&host_machine->kmaps, MAP__FUNCTION, module_name);
|
|
|
+ if (map) {
|
|
|
+ dso = map->dso;
|
|
|
+ goto found;
|
|
|
}
|
|
|
pr_debug("Failed to find module %s.\n", module);
|
|
|
return -ENOENT;
|