]> xenbits.xensource.com Git - people/andrewcoop/xen.git/commitdiff
x86/setup: correct off-by-1 in module mapping
authorJan Beulich <jbeulich@suse.com>
Thu, 20 Mar 2025 11:55:32 +0000 (12:55 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 20 Mar 2025 11:55:32 +0000 (12:55 +0100)
If a module's length is an exact multiple of PAGE_SIZE, the 2nd argument
passed to set_pdx_range() would be one larger than intended. Use
PFN_{UP,DOWN}() there instead.

Fixes: cd7cc5320bb2 ("x86/boot: add start and size fields to struct boot_module")
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
master commit: c3b54301fbe918c7e7e9c3b2dfe671c1ab79f882
master date: 2025-03-20 08:51:55 +0100

xen/arch/x86/setup.c

index 8ebe5a9443f3852ed5780b64f590867a9037fc1a..6e49d2705bd86929445f00fc662d0d104cb9e8a7 100644 (file)
@@ -1728,7 +1728,7 @@ void asmlinkage __init noreturn __start_xen(void)
     {
         unsigned long s = bi->mods[i].start, l = bi->mods[i].size;
 
-        set_pdx_range(paddr_to_pfn(s), paddr_to_pfn(s + l) + 1);
+        set_pdx_range(PFN_DOWN(s), PFN_UP(s + l));
         map_pages_to_xen((unsigned long)maddr_to_virt(s), maddr_to_mfn(s),
                          PFN_UP(l), PAGE_HYPERVISOR);
     }