|
@@ -625,7 +625,7 @@ size_t machine__fprintf_vmlinux_path(struct machine *machine, FILE *fp)
|
|
|
{
|
|
|
int i;
|
|
|
size_t printed = 0;
|
|
|
- struct dso *kdso = machine->vmlinux_maps[MAP__FUNCTION]->dso;
|
|
|
+ struct dso *kdso = machine__kernel_map(machine, MAP__FUNCTION)->dso;
|
|
|
|
|
|
if (kdso->has_build_id) {
|
|
|
char filename[PATH_MAX];
|
|
@@ -741,6 +741,7 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
|
|
|
|
|
|
for (type = 0; type < MAP__NR_TYPES; ++type) {
|
|
|
struct kmap *kmap;
|
|
|
+ struct map *map;
|
|
|
|
|
|
machine->vmlinux_maps[type] = map__new2(start, kernel, type);
|
|
|
if (machine->vmlinux_maps[type] == NULL)
|
|
@@ -749,13 +750,13 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
|
|
|
machine->vmlinux_maps[type]->map_ip =
|
|
|
machine->vmlinux_maps[type]->unmap_ip =
|
|
|
identity__map_ip;
|
|
|
- kmap = map__kmap(machine->vmlinux_maps[type]);
|
|
|
+ map = machine__kernel_map(machine, type);
|
|
|
+ kmap = map__kmap(map);
|
|
|
if (!kmap)
|
|
|
return -1;
|
|
|
|
|
|
kmap->kmaps = &machine->kmaps;
|
|
|
- map_groups__insert(&machine->kmaps,
|
|
|
- machine->vmlinux_maps[type]);
|
|
|
+ map_groups__insert(&machine->kmaps, map);
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -767,13 +768,13 @@ void machine__destroy_kernel_maps(struct machine *machine)
|
|
|
|
|
|
for (type = 0; type < MAP__NR_TYPES; ++type) {
|
|
|
struct kmap *kmap;
|
|
|
+ struct map *map = machine__kernel_map(machine, type);
|
|
|
|
|
|
- if (machine->vmlinux_maps[type] == NULL)
|
|
|
+ if (map == NULL)
|
|
|
continue;
|
|
|
|
|
|
- kmap = map__kmap(machine->vmlinux_maps[type]);
|
|
|
- map_groups__remove(&machine->kmaps,
|
|
|
- machine->vmlinux_maps[type]);
|
|
|
+ kmap = map__kmap(map);
|
|
|
+ map_groups__remove(&machine->kmaps, map);
|
|
|
if (kmap && kmap->ref_reloc_sym) {
|
|
|
/*
|
|
|
* ref_reloc_sym is shared among all maps, so free just
|
|
@@ -867,7 +868,7 @@ int machines__create_kernel_maps(struct machines *machines, pid_t pid)
|
|
|
int machine__load_kallsyms(struct machine *machine, const char *filename,
|
|
|
enum map_type type, symbol_filter_t filter)
|
|
|
{
|
|
|
- struct map *map = machine->vmlinux_maps[type];
|
|
|
+ struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
|
|
|
int ret = dso__load_kallsyms(map->dso, filename, map, filter);
|
|
|
|
|
|
if (ret > 0) {
|
|
@@ -886,7 +887,7 @@ int machine__load_kallsyms(struct machine *machine, const char *filename,
|
|
|
int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
|
|
|
symbol_filter_t filter)
|
|
|
{
|
|
|
- struct map *map = machine->vmlinux_maps[type];
|
|
|
+ struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
|
|
|
int ret = dso__load_vmlinux_path(map->dso, map, filter);
|
|
|
|
|
|
if (ret > 0)
|
|
@@ -1244,7 +1245,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
|
|
|
/*
|
|
|
* preload dso of guest kernel and modules
|
|
|
*/
|
|
|
- dso__load(kernel, machine->vmlinux_maps[MAP__FUNCTION],
|
|
|
+ dso__load(kernel, machine__kernel_map(machine, MAP__FUNCTION),
|
|
|
NULL);
|
|
|
}
|
|
|
}
|