Commit 28e03f78 authored by Juergen Gross's avatar Juergen Gross
Browse files

x86/xen: Fix xen_e820_swap_entry_with_ram()



When swapping a not page-aligned E820 map entry with RAM, the start
address of the modified entry is calculated wrong (the offset into the
page is subtracted instead of being added to the page address).

Fixes: be35d91c ("xen: tolerate ACPI NVS memory overlapping with Xen allocated memory")
Reported-by: default avatarJan Beulich <jbeulich@suse.com>
Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Message-ID: <20260505102417.208138-1-jgross@suse.com>
parent 11f152c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -655,7 +655,7 @@ static void __init xen_e820_swap_entry_with_ram(struct e820_entry *swap_entry)
			/* Fill new entry (keep size and page offset). */
			entry->type = swap_entry->type;
			entry->addr = entry_end - swap_size +
				      swap_addr - swap_entry->addr;
				      swap_entry->addr - swap_addr;
			entry->size = swap_entry->size;

			/* Convert old entry to RAM, align to pages. */