summaryrefslogtreecommitdiff
path: root/kexec/kexec.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@igel.co.jp>2009-03-18 15:07:01 +0900
committerSimon Horman <horms@verge.net.au>2009-03-18 19:38:55 +1100
commit0cd674d83b07bd5fd1bbd09d40bea2825e44d3d1 (patch)
tree91f706343476d7d3c7b838937ffe0db9380b332b /kexec/kexec.c
parent958704f7e56f5eefef2d6e13975258400d3fdbfd (diff)
kexec jump: use add_segment_phys_virt()
Since /proc/iomem contains physical addresses, use add_segment_phys_virt(xxx, 0) instead of add_segment() in add_backup_segments(). This fix is needed for kexec jump on SuperH where add_segment() only takes virtual addresses. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/kexec.c')
-rw-r--r--kexec/kexec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kexec/kexec.c b/kexec/kexec.c
index c9e9125..ce105cd 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -454,7 +454,8 @@ int add_backup_segments(struct kexec_info *info, unsigned long backup_base,
break;
start = (bkseg_base + pagesize - 1) & ~(pagesize - 1);
end = (bkseg_base + bkseg_size) & ~(pagesize - 1);
- add_segment(info, NULL, 0, start, end-start);
+ add_segment_phys_virt(info, NULL, 0,
+ start, end-start, 0);
mem_size = mem_base + mem_size - \
(bkseg_base + bkseg_size);
mem_base = bkseg_base + bkseg_size;