public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Marc Zyngier <marc.zyngier@arm.com>,
	Christoffer Dall <christoffer.dall@linaro.org>,
	Shannon Zhao <shannon.zhao@linaro.org>
Subject: [PATCH 3.14 32/34] arm/arm64: KVM: Reset the HCR on each vcpu when resetting the vcpu
Date: Wed,  1 Jul 2015 11:40:39 -0700	[thread overview]
Message-ID: <20150701183956.517361866@linuxfoundation.org> (raw)
In-Reply-To: <20150701183955.306219425@linuxfoundation.org>

3.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Christoffer Dall <christoffer.dall@linaro.org>

commit b856a59141b1066d3c896a0d0231f84dabd040af upstream.

When userspace resets the vcpu using KVM_ARM_VCPU_INIT, we should also
reset the HCR, because we now modify the HCR dynamically to
enable/disable trapping of guest accesses to the VM registers.

This is crucial for reboot of VMs working since otherwise we will not be
doing the necessary cache maintenance operations when faulting in pages
with the guest MMU off.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm/include/asm/kvm_emulate.h   |    5 +++++
 arch/arm/kvm/arm.c                   |    2 ++
 arch/arm/kvm/guest.c                 |    1 -
 arch/arm64/include/asm/kvm_emulate.h |    5 +++++
 arch/arm64/kvm/guest.c               |    1 -
 5 files changed, 12 insertions(+), 2 deletions(-)

--- a/arch/arm/include/asm/kvm_emulate.h
+++ b/arch/arm/include/asm/kvm_emulate.h
@@ -33,6 +33,11 @@ void kvm_inject_undefined(struct kvm_vcp
 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr);
 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr);
 
+static inline void vcpu_reset_hcr(struct kvm_vcpu *vcpu)
+{
+	vcpu->arch.hcr = HCR_GUEST_MASK;
+}
+
 static inline bool vcpu_mode_is_32bit(struct kvm_vcpu *vcpu)
 {
 	return 1;
--- a/arch/arm/kvm/arm.c
+++ b/arch/arm/kvm/arm.c
@@ -675,6 +675,8 @@ static int kvm_arch_vcpu_ioctl_vcpu_init
 	if (ret)
 		return ret;
 
+	vcpu_reset_hcr(vcpu);
+
 	/*
 	 * Handle the "start in power-off" case by marking the VCPU as paused.
 	 */
--- a/arch/arm/kvm/guest.c
+++ b/arch/arm/kvm/guest.c
@@ -38,7 +38,6 @@ struct kvm_stats_debugfs_item debugfs_en
 
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
-	vcpu->arch.hcr = HCR_GUEST_MASK;
 	return 0;
 }
 
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -38,6 +38,11 @@ void kvm_inject_undefined(struct kvm_vcp
 void kvm_inject_dabt(struct kvm_vcpu *vcpu, unsigned long addr);
 void kvm_inject_pabt(struct kvm_vcpu *vcpu, unsigned long addr);
 
+static inline void vcpu_reset_hcr(struct kvm_vcpu *vcpu)
+{
+	vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS;
+}
+
 static inline unsigned long *vcpu_pc(const struct kvm_vcpu *vcpu)
 {
 	return (unsigned long *)&vcpu_gp_regs(vcpu)->regs.pc;
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -38,7 +38,6 @@ struct kvm_stats_debugfs_item debugfs_en
 
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
-	vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS;
 	return 0;
 }
 



  parent reply	other threads:[~2015-07-01 18:43 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-01 18:40 [PATCH 3.14 00/34] 3.14.47-stable review Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 01/34] arm64: dma-mapping: always clear allocated buffers Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 02/34] kprobes/x86: Return correct length in __copy_instruction() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 03/34] config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 05/34] sb_edac: Fix erroneous bytes->gigabytes conversion Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 06/34] hpsa: refine the pci enable/disable handling Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 07/34] netfilter: Zero the tuple in nfnl_cthelper_parse_tuple() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 08/34] netfilter: nft_compat: set IP6T_F_PROTO flag if protocol is set Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 09/34] netfilter: nf_tables: allow to change chain policy without hook if it exists Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 10/34] hpsa: add missing pci_set_master in kdump path Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 11/34] x86/microcode/intel: Guard against stack overflow in the loader Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 12/34] Btrfs: make xattr replace operations atomic Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 13/34] net/mlx4_en: Dont attempt to TX offload the outer UDP checksum for VXLAN Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 14/34] splice: Apply generic position and size checks to each write Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 15/34] ARM: clk-imx6q: refine satas parent Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 16/34] KVM: nSVM: Check for NRIPS support before updating control field Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 17/34] bus: mvebu: pass the coherency availability information at init time Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 18/34] ARM/arm64: KVM: fix use of WnR bit in kvm_is_write_fault() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 19/34] KVM: ARM: vgic: plug irq injection race Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 20/34] arm/arm64: KVM: Fix set_clear_sgi_pend_reg offset Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 21/34] arm/arm64: KVM: Fix VTTBR_BADDR_MASK and pgd alloc Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 22/34] arm: kvm: fix CPU hotplug Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 23/34] arm/arm64: KVM: fix potential NULL dereference in user_mem_abort() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 24/34] arm/arm64: KVM: Ensure memslots are within KVM_PHYS_SIZE Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 25/34] arm: kvm: STRICT_MM_TYPECHECKS fix for user_mem_abort Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 26/34] arm64: KVM: fix unmapping with 48-bit VAs Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 27/34] arm/arm64: KVM: vgic: Fix error code in kvm_vgic_create() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 28/34] arm64/kvm: Fix assembler compatibility of macros Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 29/34] arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn() Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 30/34] arm/arm64: KVM: Dont clear the VCPU_POWER_OFF flag Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 31/34] arm/arm64: KVM: Correct KVM_ARM_VCPU_INIT power off option Greg Kroah-Hartman
2015-07-01 18:40 ` Greg Kroah-Hartman [this message]
2015-07-01 18:40 ` [PATCH 3.14 33/34] arm/arm64: KVM: Introduce stage2_unmap_vm Greg Kroah-Hartman
2015-07-01 18:40 ` [PATCH 3.14 34/34] arm/arm64: KVM: Dont allow creating VCPUs after vgic_initialized Greg Kroah-Hartman
2015-07-01 22:35 ` [PATCH 3.14 00/34] 3.14.47-stable review Shuah Khan
2015-07-02  2:19 ` Guenter Roeck
2015-07-02  4:30   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150701183956.517361866@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=christoffer.dall@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marc.zyngier@arm.com \
    --cc=shannon.zhao@linaro.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox