diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-11-30 15:23:18 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-11-30 15:23:18 +0100 |
commit | d79e7d051790d67ee3993eebf93081b8db0d3d50 (patch) | |
tree | 9bfe34f5a1c49c834ed8c5b4ee5ee4d4afd94bf5 /virt | |
parent | b6a8fc645976fb85cf38a78474aff4eac4521e8f (diff) | |
parent | b32d16ec995683be888520d12d8f2833efee5dae (diff) |
Merge tag 'v4.19.5' into linux-4.19.y-rt
This is the 4.19.5 stable release
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/arm/arm.c | 4 | ||||
-rw-r--r-- | virt/kvm/arm/mmu.c | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c index 2e4113ad8ad9..3a5f34008d8e 100644 --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c @@ -1295,8 +1295,6 @@ static void cpu_init_hyp_mode(void *dummy) __cpu_init_hyp_mode(pgd_ptr, hyp_stack_ptr, vector_ptr); __cpu_init_stage2(); - - kvm_arm_init_debug(); } static void cpu_hyp_reset(void) @@ -1320,6 +1318,8 @@ static void cpu_hyp_reinit(void) cpu_init_hyp_mode(NULL); } + kvm_arm_init_debug(); + if (vgic_present) kvm_vgic_init_cpu_hardware(); } diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c index ed162a6c57c5..2f405b0be25c 100644 --- a/virt/kvm/arm/mmu.c +++ b/virt/kvm/arm/mmu.c @@ -1230,8 +1230,14 @@ static bool transparent_hugepage_adjust(kvm_pfn_t *pfnp, phys_addr_t *ipap) { kvm_pfn_t pfn = *pfnp; gfn_t gfn = *ipap >> PAGE_SHIFT; + struct page *page = pfn_to_page(pfn); - if (PageTransCompoundMap(pfn_to_page(pfn))) { + /* + * PageTransCompoungMap() returns true for THP and + * hugetlbfs. Make sure the adjustment is done only for THP + * pages. + */ + if (!PageHuge(page) && PageTransCompoundMap(page)) { unsigned long mask; /* * The address we faulted on is backed by a transparent huge |