[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v6 3/3] acpi: Refactor acpi_os_map_memory to be architecturally independent
From: Shannon Zhao <shannon.zhao@xxxxxxxxxx> The first Mb handling is not necessary and the attribute of __vmap() is different for ARM. Factor the first Mb handling only for x86 and define a mapping attribute for each architecture. Cc: Jan Beulich <jbeulich@xxxxxxxx> Signed-off-by: Shannon Zhao <shannon.zhao@xxxxxxxxxx> --- xen/drivers/acpi/osl.c | 6 +++--- xen/include/asm-x86/acpi.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/xen/drivers/acpi/osl.c b/xen/drivers/acpi/osl.c index 2f1d723..8a28d87 100644 --- a/xen/drivers/acpi/osl.c +++ b/xen/drivers/acpi/osl.c @@ -93,11 +93,11 @@ acpi_os_map_memory(acpi_physical_address phys, acpi_size size) mfn_t mfn = _mfn(PFN_DOWN(phys)); unsigned int offs = phys & (PAGE_SIZE - 1); - /* The low first Mb is always mapped. */ - if ( !((phys + size - 1) >> 20) ) + /* The low first Mb is always mapped on x86. */ + if (IS_ENABLED(CONFIG_X86) && !((phys + size - 1) >> 20)) return __va(phys); return __vmap(&mfn, PFN_UP(offs + size), 1, 1, - PAGE_HYPERVISOR_NOCACHE) + offs; + ACPI_MAP_MEM_ATTR) + offs; } return __acpi_map_table(phys, size); } diff --git a/xen/include/asm-x86/acpi.h b/xen/include/asm-x86/acpi.h index d3bde78..d532e3d 100644 --- a/xen/include/asm-x86/acpi.h +++ b/xen/include/asm-x86/acpi.h @@ -163,4 +163,6 @@ void hvm_acpi_sleep_button(struct domain *d); void save_rest_processor_state(void); void restore_rest_processor_state(void); +#define ACPI_MAP_MEM_ATTR PAGE_HYPERVISOR_NOCACHE + #endif /*__X86_ASM_ACPI_H*/ -- 2.0.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |