summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kexec/kexec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kexec/kexec.c b/kexec/kexec.c
index fd66e15..d6cca88 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -324,12 +324,17 @@ unsigned long add_buffer(struct kexec_info *info,
{
unsigned long base;
int result;
+ int pagesize;
result = sort_segments(info);
if (result < 0) {
die("sort_segments failed\n");
}
+ /* Round memsz up to a multiple of pagesize */
+ pagesize = getpagesize();
+ memsz = (memsz + (pagesize - 1)) & ~(pagesize - 1);
+
base = locate_hole(info, memsz, buf_align, buf_min, buf_max, buf_end);
if (base == ULONG_MAX) {
die("locate_hole failed\n");