|
@@ -1469,8 +1469,16 @@ static int __event_process_build_id(struct build_id_event *bev,
|
|
|
|
|
|
dso__set_build_id(dso, &bev->build_id);
|
|
|
|
|
|
- if (!is_kernel_module(filename, cpumode))
|
|
|
- dso->kernel = dso_type;
|
|
|
+ if (dso_type != DSO_TYPE_USER) {
|
|
|
+ struct kmod_path m = { .name = NULL, };
|
|
|
+
|
|
|
+ if (!kmod_path__parse_name(&m, filename) && m.kmod)
|
|
|
+ dso__set_short_name(dso, strdup(m.name), true);
|
|
|
+ else
|
|
|
+ dso->kernel = dso_type;
|
|
|
+
|
|
|
+ free(m.name);
|
|
|
+ }
|
|
|
|
|
|
build_id__sprintf(dso->build_id, sizeof(dso->build_id),
|
|
|
sbuild_id);
|