[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/boot: Drop xen_virt_end
commit c182e89d0b341d2efc930c2e1211d3e866c0effb Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Mon Nov 29 19:01:50 2021 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Dec 2 20:02:55 2021 +0000 x86/boot: Drop xen_virt_end The calculation in __start_xen() for xen_virt_end is an opencoding of ROUNDUP(_end, 2M). This is __2M_rwdata_end as provided by the linker script. This corrects the bound calculations in arch_livepatch_init() and update_xen_mappings() to not enforce 2M alignment when Xen is not compiled with CONFIG_XEN_ALIGN_2M. Furthermore, since 52975142d154 ("x86/boot: Create the l2_xenmap[] mappings dynamically"), there have not been extraneous mappings to delete, meaning that the call to destroy_xen_mappings() has been a no-op. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/x86/livepatch.c | 3 ++- xen/arch/x86/mm.c | 3 ++- xen/arch/x86/setup.c | 6 ------ xen/include/asm-x86/x86_64/page.h | 2 -- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/xen/arch/x86/livepatch.c b/xen/arch/x86/livepatch.c index 49f0d902e5..d056b1ed8b 100644 --- a/xen/arch/x86/livepatch.c +++ b/xen/arch/x86/livepatch.c @@ -17,6 +17,7 @@ #include <asm/fixmap.h> #include <asm/nmi.h> #include <asm/livepatch.h> +#include <asm/setup.h> static bool has_active_waitqueue(const struct vm_event_domain *ved) { @@ -343,7 +344,7 @@ void __init arch_livepatch_init(void) { void *start, *end; - start = (void *)xen_virt_end; + start = (void *)__2M_rwdata_end; end = (void *)(XEN_VIRT_END - FIXADDR_X_SIZE - NR_CPUS * PAGE_SIZE); BUG_ON(end <= start); diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 4d799032dc..4a9ac8d5e6 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -787,7 +787,8 @@ static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr) { int err = 0; bool alias = mfn >= PFN_DOWN(xen_phys_start) && - mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START); + mfn < PFN_UP(xen_phys_start + (unsigned long)__2M_rwdata_end - + XEN_VIRT_START); unsigned long xen_va = XEN_VIRT_START + ((mfn - PFN_DOWN(xen_phys_start)) << PAGE_SHIFT); diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 6613e56a21..0e0e706404 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -136,8 +136,6 @@ cpumask_t __read_mostly cpu_present_map; unsigned long __read_mostly xen_phys_start; -unsigned long __read_mostly xen_virt_end; - char __section(".bss.stack_aligned") __aligned(STACK_SIZE) cpu0_stack[STACK_SIZE]; @@ -1573,10 +1571,6 @@ void __init noreturn __start_xen(unsigned long mbi_p) } #endif - xen_virt_end = ((unsigned long)_end + (1UL << L2_PAGETABLE_SHIFT) - 1) & - ~((1UL << L2_PAGETABLE_SHIFT) - 1); - destroy_xen_mappings(xen_virt_end, XEN_VIRT_START + BOOTSTRAP_MAP_BASE); - /* * If not using 2M mappings to gain suitable pagetable permissions * directly from the relocation above, remap the code/data diff --git a/xen/include/asm-x86/x86_64/page.h b/xen/include/asm-x86/x86_64/page.h index f9faf7f383..cb1db107c4 100644 --- a/xen/include/asm-x86/x86_64/page.h +++ b/xen/include/asm-x86/x86_64/page.h @@ -23,8 +23,6 @@ static inline unsigned long canonicalise_addr(unsigned long addr) #include <xen/pdx.h> -extern unsigned long xen_virt_end; - /* * Note: These are solely for the use by page_{get,set}_owner(), and * therefore don't need to handle the XEN_VIRT_{START,END} range. -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |