mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
x86/MCFG: fix off-by-one in E820 check
Also adjust the comment ahead of e820_all_mapped() to clarify that the range is not inclusive at its end. Reported-by: Roger Pau Monné <roger.pau@citrix.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Wei Liu <wl@xen.org> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
1 parent
89f0b0a0ac
commit
a5dccdd866
2 files changed
+4
-3
No files matched your search
+3
-2
@@ -38,7 +38,7 @@ struct e820map e820;
|
||||
struct e820map __initdata e820_raw;
|
||||
|
||||
/*
|
||||
* This function checks if the entire range <start,end> is mapped with type.
|
||||
* This function checks if the entire range [start,end) is mapped with type.
|
||||
*
|
||||
* Note: this function only works correct if the e820 table is sorted and
|
||||
* not-overlapping, which is the case
|
||||
@@ -56,7 +56,8 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type)
|
||||
if (ei->addr >= end || ei->addr + ei->size <= start)
|
||||
continue;
|
||||
|
||||
/* if the region is at the beginning of <start,end> we move
|
||||
/*
|
||||
* If the region is at the beginning of [start,end) we move
|
||||
* start to the end of the region since it's ok until there
|
||||
*/
|
||||
if (ei->addr <= start)
|
||||
|
||||
@@ -337,7 +337,7 @@ static int __init is_mmconf_reserved(
|
||||
u64 old_size = size;
|
||||
int valid = 0;
|
||||
|
||||
while (!e820_all_mapped(addr, addr + size - 1, E820_RESERVED)) {
|
||||
while (!e820_all_mapped(addr, addr + size, E820_RESERVED)) {
|
||||
size >>= 1;
|
||||
if (size < (16UL<<20))
|
||||
break;
|
||||
|
||||