diff options
author | Russell King <rmk@arm.linux.org.uk> | 2016-06-06 17:59:03 +0100 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2016-06-08 09:21:49 +0900 |
commit | 58afa4991bf8c655972f9ad0a0adf09883439427 (patch) | |
tree | 2bd272e6b7db6785bd7f55a164575dc93b8a80af | |
parent | e11f8002ce69686abfcb448033c1b19034bf49c4 (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.c | 3 |
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; |