summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2016-06-06 17:59:03 +0100
committerSimon Horman <horms@verge.net.au>2016-06-08 09:21:49 +0900
commit58afa4991bf8c655972f9ad0a0adf09883439427 (patch)
tree2bd272e6b7db6785bd7f55a164575dc93b8a80af
parente11f8002ce69686abfcb448033c1b19034bf49c4 (diff)
kdump: fix kdump mapping
When kdump tries to map the program header, it fails to take account of ehdr->e_phoff being an offset from the start of the ELF "file", which causes: Cannot mmap /dev/mem offset: 64 size: 392: Invalid argument Ensure that we take account of the start address when mapping this. This fix has been extracted from a larger patch by Vitaly Andrianov adding support for Keystone 2. Signed-off-by: Russell King <rmk@arm.linux.org.uk> Reviewed-by: Pratyush Anand <panand@redhat.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kdump/kdump.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kdump/kdump.c b/kdump/kdump.c
index 1f5b984..8f6f2df 100644
--- a/kdump/kdump.c
+++ b/kdump/kdump.c
@@ -284,7 +284,8 @@ int main(int argc, char **argv)
}
/* Get the program header */
- phdr = map_addr(fd, sizeof(*phdr)*(ehdr->e_phnum), ehdr->e_phoff);
+ phdr = map_addr(fd, sizeof(*phdr)*(ehdr->e_phnum),
+ start_addr + ehdr->e_phoff);
/* Collect up the notes */
note_bytes = 0;