[PATCH] kexec jump: use add_segment_phys_virt()

Magnus Damm magnus.damm at gmail.com
Wed Mar 18 02:07:01 EDT 2009


From: Magnus Damm <damm at igel.co.jp>

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 at igel.co.jp>
---

 kexec/kexec.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- 0001/kexec/kexec.c
+++ work/kexec/kexec.c	2009-03-17 22:43:06.000000000 +0900
@@ -454,7 +454,8 @@ int add_backup_segments(struct kexec_inf
 				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;



More information about the kexec mailing list