Hi Xiaolong,

Could you please apply below patch and see if it works for you?

>From 46c2a9ecd11f61d952253e005bbd7dcbffa652fb Mon Sep 17 00:00:00 2001
From: Baoquan He <[email protected]>
Date: Fri, 1 Jul 2016 15:34:40 +0800
Subject: [PATCH] x86/KASLR: Fix code bug of finding earliest overlap

Signed-off-by: Baoquan He <[email protected]>
---
 arch/x86/boot/compressed/kaslr.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
index 304c5c3..8e1fdf7 100644
--- a/arch/x86/boot/compressed/kaslr.c
+++ b/arch/x86/boot/compressed/kaslr.c
@@ -285,6 +285,7 @@ static bool mem_avoid_overlap(struct mem_vector *img,
                if (mem_overlaps(img, &mem_avoid[i]) &&
                    mem_avoid[i].start < earliest) {
                        *overlap = mem_avoid[i];
+                       earliest = overlap->start;
                        is_overlapping = true;
                }
        }
@@ -299,6 +300,7 @@ static bool mem_avoid_overlap(struct mem_vector *img,
 
                if (mem_overlaps(img, &avoid) && (avoid.start < earliest)) {
                        *overlap = avoid;
+                       earliest = overlap->start;
                        is_overlapping = true;
                }
 
-- 
2.5.5

Reply via email to