add_usable_mem() adds usable memory ranges for the kdump kernel.

The ranges are inclusive, but the partial overlap check uses exclusive
comparisons. This skips ranges with base == loc_end or end == loc_base.
Use inclusive comparisons instead.

Fixes: 7c64e21a1c5a ("powerpc/kexec_file: Restrict memory usage of kdump 
kernel")
Signed-off-by: Thorsten Blum <[email protected]>
---
 arch/powerpc/kexec/file_load_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/kexec/file_load_64.c 
b/arch/powerpc/kexec/file_load_64.c
index 8c72e12ea44e..f9e872693ca7 100644
--- a/arch/powerpc/kexec/file_load_64.c
+++ b/arch/powerpc/kexec/file_load_64.c
@@ -113,7 +113,7 @@ static int add_usable_mem(struct umem_info *um_info, u64 
base, u64 end)
                loc_end = um_info->ranges[i].end;
                if (loc_base >= base && loc_end <= end)
                        add = true;
-               else if (base < loc_end && end > loc_base) {
+               else if (base <= loc_end && end >= loc_base) {
                        if (loc_base < base)
                                loc_base = base;
                        if (loc_end > end)

Reply via email to