[PATCH] Revert "kexec: use mmap instead of read for slurp_file()"

Dave Young dyoung at redhat.com
Thu Oct 22 20:10:00 PDT 2015


This reverts commit 7ab842d8a004f6cd75a9d7b3528e4a70819ce4ef.

using mmap by default in slurp_file cause segment fault while later
reallocing dtb_buf during my arm kexec test.

Signed-off-by: Dave Young <dyoung at redhat.com>
---
 kexec/kexec.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

--- kexec-tools.orig/kexec/kexec.c
+++ kexec-tools/kexec/kexec.c
@@ -26,7 +26,6 @@
 #include <stdlib.h>
 #include <errno.h>
 #include <limits.h>
-#include <sys/mman.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/reboot.h>
@@ -553,12 +552,11 @@ char *slurp_file(const char *filename, o
 		if (err < 0)
 			die("Can not seek to the begin of file %s: %s\n",
 					filename, strerror(errno));
-		buf = slurp_fd(fd, filename, size, &nread);
 	} else {
-		size = nread = stats.st_size;
-		buf = mmap(NULL, size,
-			   PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
+		size = stats.st_size;
 	}
+
+	buf = slurp_fd(fd, filename, size, &nread);
 	if (!buf)
 		die("Cannot read %s", filename);
 



More information about the kexec mailing list