summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2016-06-06 17:59:29 +0100
committerSimon Horman <horms@verge.net.au>2016-06-08 09:21:52 +0900
commit8d8d2229a3afe6323a737c42c25a101ea104efbe (patch)
treea023d3057b75ec39ddf776927d9c911d670b6a95
parent5450d34a886445e0787c432ff9aaa04b55b0f4c0 (diff)
kexec: phys_to_virt() must take unsigned long long
crashdump-elf.c passes unsigned long long addresses into phys_to_virt() so make phys_to_virt() accept such addresses without truncating them. This is important for ARM LPAE systems. Reviewed-by: Pratyush Anand <panand@redhat.com> Signed-off-by: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/arm/phys_to_virt.c2
-rw-r--r--kexec/crashdump.h2
-rw-r--r--kexec/phys_to_virt.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/kexec/arch/arm/phys_to_virt.c b/kexec/arch/arm/phys_to_virt.c
index bcced52..c2fe2ea 100644
--- a/kexec/arch/arm/phys_to_virt.c
+++ b/kexec/arch/arm/phys_to_virt.c
@@ -14,7 +14,7 @@
* http://lists.arm.linux.org.uk/lurker/message/20010723.185051.94ce743c.en.html
*/
unsigned long
-phys_to_virt(struct crash_elf_info *elf_info, unsigned long paddr)
+phys_to_virt(struct crash_elf_info *elf_info, unsigned long long paddr)
{
return paddr + elf_info->page_offset - phys_offset;
}
diff --git a/kexec/crashdump.h b/kexec/crashdump.h
index 95f1f0c..96219a8 100644
--- a/kexec/crashdump.h
+++ b/kexec/crashdump.h
@@ -55,7 +55,7 @@ int crash_create_elf64_headers(struct kexec_info *info,
unsigned long crash_architecture(struct crash_elf_info *elf_info);
unsigned long phys_to_virt(struct crash_elf_info *elf_info,
- unsigned long paddr);
+ unsigned long long paddr);
unsigned long xen_architecture(struct crash_elf_info *elf_info);
int xen_get_nr_phys_cpus(void);
diff --git a/kexec/phys_to_virt.c b/kexec/phys_to_virt.c
index 91b6d01..5e8c4e3 100644
--- a/kexec/phys_to_virt.c
+++ b/kexec/phys_to_virt.c
@@ -10,7 +10,7 @@
* their own implementation.
*/
unsigned long
-phys_to_virt(struct crash_elf_info *elf_info, unsigned long paddr)
+phys_to_virt(struct crash_elf_info *elf_info, unsigned long long paddr)
{
return paddr + elf_info->page_offset;
}