diff options
author | Juergen Gross <jgross@suse.com> | 2020-07-03 09:28:15 +0200 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2020-08-11 08:27:07 +0200 |
commit | f2e39e8c4f0c13bc4b49f942be8fd5b4b0470412 (patch) | |
tree | 3b93a5808726dd1d8bb69a93917b58def40e701b /arch/x86/xen/enlighten_pv.c | |
parent | x86/xen: eliminate xen-asm_64.S (diff) | |
download | linux-f2e39e8c4f0c13bc4b49f942be8fd5b4b0470412.tar.xz linux-f2e39e8c4f0c13bc4b49f942be8fd5b4b0470412.zip |
x86/xen: drop tests for highmem in pv code
With support for 32-bit pv guests gone pure pv-code no longer needs to
test for highmem. Dropping those tests removes the need for flushing
in some places.
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Diffstat (limited to 'arch/x86/xen/enlighten_pv.c')
-rw-r--r-- | arch/x86/xen/enlighten_pv.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/x86/xen/enlighten_pv.c b/arch/x86/xen/enlighten_pv.c index 2831f009ef78..37d6511daf54 100644 --- a/arch/x86/xen/enlighten_pv.c +++ b/arch/x86/xen/enlighten_pv.c @@ -345,15 +345,13 @@ static void set_aliased_prot(void *v, pgprot_t prot) pte_t *ptep; pte_t pte; unsigned long pfn; - struct page *page; unsigned char dummy; + void *va; ptep = lookup_address((unsigned long)v, &level); BUG_ON(ptep == NULL); pfn = pte_pfn(*ptep); - page = pfn_to_page(pfn); - pte = pfn_pte(pfn, prot); /* @@ -383,14 +381,10 @@ static void set_aliased_prot(void *v, pgprot_t prot) if (HYPERVISOR_update_va_mapping((unsigned long)v, pte, 0)) BUG(); - if (!PageHighMem(page)) { - void *av = __va(PFN_PHYS(pfn)); + va = __va(PFN_PHYS(pfn)); - if (av != v) - if (HYPERVISOR_update_va_mapping((unsigned long)av, pte, 0)) - BUG(); - } else - kmap_flush_unused(); + if (va != v && HYPERVISOR_update_va_mapping((unsigned long)va, pte, 0)) + BUG(); preempt_enable(); } |