mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
arch: x86_64: Fix E820 table for RAM
The last byte was missing from the E820 RAM area. This was due to the function using the last address relative to the first address in the range to calculate the size. This incorrectly calculated the size by one. This produced incorrect E820 tables like this: [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001ffffffe] usable Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
@@ -166,7 +166,7 @@ pub fn configure_system(
|
||||
add_e820_entry(
|
||||
&mut params.0,
|
||||
himem_start.raw_value(),
|
||||
mem_end.unchecked_offset_from(himem_start),
|
||||
mem_end.unchecked_offset_from(himem_start) + 1,
|
||||
E820_RAM,
|
||||
)?;
|
||||
} else {
|
||||
@@ -180,7 +180,7 @@ pub fn configure_system(
|
||||
add_e820_entry(
|
||||
&mut params.0,
|
||||
first_addr_past_32bits.raw_value(),
|
||||
mem_end.unchecked_offset_from(first_addr_past_32bits),
|
||||
mem_end.unchecked_offset_from(first_addr_past_32bits) + 1,
|
||||
E820_RAM,
|
||||
)?;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user