summaryrefslogtreecommitdiff
path: root/elf_info.c
diff options
context:
space:
mode:
authorKazuhito Hagio <k-hagio@ab.jp.nec.com>2018-11-08 14:26:43 -0500
committerKazuhito Hagio <k-hagio@ab.jp.nec.com>2018-11-16 13:20:50 -0500
commit9eb5a31bc2d7f6af88459b89c414fe144e7491f8 (patch)
treea51b71fb4982fda2502d0041f59ac5757a4b0c51 /elf_info.c
parentd015e6df8bd320fbabcd98cc157acf655fc0851b (diff)
[PATCH] Prepare paddr_to_vaddr() for arch-specific p2v conversion
Currently, conversion from physical address to virtual address in --mem-usage option is "paddr + PAGE_OFFSET", which was written for x86_64, but it's not suitable especially for arm64. This patch introduces paddr_to_vaddr() macro to get prepared for arch-specific physical to virtual conversion. Tested-by: Bhupesh Sharma <bhsharma@redhat.com> Signed-off-by: Kazuhito Hagio <k-hagio@ab.jp.nec.com>
Diffstat (limited to 'elf_info.c')
-rw-r--r--elf_info.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/elf_info.c b/elf_info.c
index 711601a..1d33e96 100644
--- a/elf_info.c
+++ b/elf_info.c
@@ -372,7 +372,7 @@ int set_kcore_vmcoreinfo(uint64_t vmcoreinfo_addr, uint64_t vmcoreinfo_len)
off_t offset_desc;
offset = UNINITIALIZED;
- kvaddr = (ulong)vmcoreinfo_addr + PAGE_OFFSET;
+ kvaddr = paddr_to_vaddr(vmcoreinfo_addr);
for (i = 0; i < num_pt_loads; ++i) {
struct pt_load_segment *p = &pt_loads[i];
@@ -810,10 +810,11 @@ static int exclude_segment(struct pt_load_segment **pt_loads,
int i, j, tidx = -1;
unsigned long long vstart, vend, kvstart, kvend;
struct pt_load_segment temp_seg = {0};
- kvstart = (ulong)start + PAGE_OFFSET;
- kvend = (ulong)end + PAGE_OFFSET;
unsigned long size;
+ kvstart = paddr_to_vaddr(start);
+ kvend = paddr_to_vaddr(end);
+
for (i = 0; i < (*num_pt_loads); i++) {
vstart = (*pt_loads)[i].virt_start;
vend = (*pt_loads)[i].virt_end;