From: Marc Zyngier <marc.zyngier@arm.com> To: linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu Cc: Russell King <linux@arm.linux.org.uk>, Ard Biesheuvel <ard.biesheuvel@linaro.org>, Catalin Marinas <catalin.marinas@arm.com>, Keerthy <j-keerthy@ti.com> Subject: [PATCH v4 20/28] ARM: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors Date: Tue, 21 Mar 2017 19:20:50 +0000 [thread overview] Message-ID: <20170321192058.9300-21-marc.zyngier@arm.com> (raw) In-Reply-To: <20170321192058.9300-1-marc.zyngier@arm.com> We are now able to use the hyp stub to reset HYP mode. Time to kiss __kvm_hyp_reset goodbye, and use __hyp_reset_vectors. Tested-by: Keerthy <j-keerthy@ti.com> Acked-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> --- arch/arm/include/asm/kvm_asm.h | 2 -- arch/arm/include/asm/kvm_host.h | 2 +- arch/arm/kvm/init.S | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h index 8ef05381984b..7ccb6f1aac5b 100644 --- a/arch/arm/include/asm/kvm_asm.h +++ b/arch/arm/include/asm/kvm_asm.h @@ -72,8 +72,6 @@ extern int __kvm_vcpu_run(struct kvm_vcpu *vcpu); extern void __init_stage2_translation(void); -extern void __kvm_hyp_reset(unsigned long); - extern u64 __vgic_v3_get_ich_vtr_el2(void); extern void __vgic_v3_init_lrs(void); #endif diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h index 31ee468ce667..adea30753185 100644 --- a/arch/arm/include/asm/kvm_host.h +++ b/arch/arm/include/asm/kvm_host.h @@ -273,7 +273,7 @@ static inline void __cpu_init_stage2(void) static inline void __cpu_reset_hyp_mode(unsigned long vector_ptr, phys_addr_t phys_idmap_start) { - kvm_call_hyp((void *)virt_to_idmap(__kvm_hyp_reset), vector_ptr); + __hyp_reset_vectors(); } static inline int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext) diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S index 0da120b71c2e..7335a510eee4 100644 --- a/arch/arm/kvm/init.S +++ b/arch/arm/kvm/init.S @@ -129,7 +129,6 @@ ENTRY(__kvm_handle_stub_hvc) 1: cmp r0, #HVC_RESET_VECTORS bne 1f -ENTRY(__kvm_hyp_reset) /* We're now in idmap, disable MMU */ mrc p15, 4, r1, c1, c0, 0 @ HSCTLR ldr r0, =(HSCTLR_M | HSCTLR_A | HSCTLR_C | HSCTLR_I) @@ -151,7 +150,6 @@ ENTRY(__kvm_hyp_reset) exit: eret ENDPROC(__kvm_handle_stub_hvc) -ENDPROC(__kvm_hyp_reset) .ltorg -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v4 20/28] ARM: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors Date: Tue, 21 Mar 2017 19:20:50 +0000 [thread overview] Message-ID: <20170321192058.9300-21-marc.zyngier@arm.com> (raw) In-Reply-To: <20170321192058.9300-1-marc.zyngier@arm.com> We are now able to use the hyp stub to reset HYP mode. Time to kiss __kvm_hyp_reset goodbye, and use __hyp_reset_vectors. Tested-by: Keerthy <j-keerthy@ti.com> Acked-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> --- arch/arm/include/asm/kvm_asm.h | 2 -- arch/arm/include/asm/kvm_host.h | 2 +- arch/arm/kvm/init.S | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h index 8ef05381984b..7ccb6f1aac5b 100644 --- a/arch/arm/include/asm/kvm_asm.h +++ b/arch/arm/include/asm/kvm_asm.h @@ -72,8 +72,6 @@ extern int __kvm_vcpu_run(struct kvm_vcpu *vcpu); extern void __init_stage2_translation(void); -extern void __kvm_hyp_reset(unsigned long); - extern u64 __vgic_v3_get_ich_vtr_el2(void); extern void __vgic_v3_init_lrs(void); #endif diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h index 31ee468ce667..adea30753185 100644 --- a/arch/arm/include/asm/kvm_host.h +++ b/arch/arm/include/asm/kvm_host.h @@ -273,7 +273,7 @@ static inline void __cpu_init_stage2(void) static inline void __cpu_reset_hyp_mode(unsigned long vector_ptr, phys_addr_t phys_idmap_start) { - kvm_call_hyp((void *)virt_to_idmap(__kvm_hyp_reset), vector_ptr); + __hyp_reset_vectors(); } static inline int kvm_arch_dev_ioctl_check_extension(struct kvm *kvm, long ext) diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S index 0da120b71c2e..7335a510eee4 100644 --- a/arch/arm/kvm/init.S +++ b/arch/arm/kvm/init.S @@ -129,7 +129,6 @@ ENTRY(__kvm_handle_stub_hvc) 1: cmp r0, #HVC_RESET_VECTORS bne 1f -ENTRY(__kvm_hyp_reset) /* We're now in idmap, disable MMU */ mrc p15, 4, r1, c1, c0, 0 @ HSCTLR ldr r0, =(HSCTLR_M | HSCTLR_A | HSCTLR_C | HSCTLR_I) @@ -151,7 +150,6 @@ ENTRY(__kvm_hyp_reset) exit: eret ENDPROC(__kvm_handle_stub_hvc) -ENDPROC(__kvm_hyp_reset) .ltorg -- 2.11.0
next prev parent reply other threads:[~2017-03-21 19:20 UTC|newest] Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-03-21 19:20 [PATCH v4 00/28] arm/arm64: KVM: Rework the hyp-stub API Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 01/28] arm64: hyp-stub: Stop pointlessly clobbering lr Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 02/28] arm64: KVM: Move lr save/restore to do_el2_call Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-23 11:57 ` Marc Zyngier 2017-03-23 11:57 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 03/28] arm64: hyp-stub: Don't save lr in the EL1 code Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 04/28] arm64: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 05/28] arm64: KVM: Implement HVC_RESET_VECTORS stub hypercall in the init code Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:45 ` Marc Zyngier 2017-03-24 14:45 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 06/28] arm64: KVM: Implement HVC_GET_VECTORS " Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 07/28] arm64: KVM: Allow the main HYP code to use the init hyp stub implementation Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:56 ` Marc Zyngier 2017-03-24 14:56 ` Marc Zyngier 2017-04-03 17:28 ` Christoffer Dall 2017-04-03 17:28 ` Christoffer Dall 2017-03-21 19:20 ` [PATCH v4 08/28] arm64: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 09/28] arm64: KVM: Implement HVC_SOFT_RESTART in the init code Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 10/28] ARM: hyp-stub: improve ABI Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 11/28] ARM: soft-reboot into same mode that we entered the kernel Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 12/28] ARM: KVM: Convert KVM to use HVC_GET_VECTORS Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 13/28] ARM: Update cpu_v7_reset documentation Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 14/28] ARM: hyp-stub: Use r1 for the soft-restart address Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 15/28] ARM: Expose the VA/IDMAP offset Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 16/28] ARM: hyp-stub: Implement HVC_RESET_VECTORS stub hypercall Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 17/28] ARM: KVM: Implement HVC_RESET_VECTORS stub hypercall in the init code Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 18/28] ARM: KVM: Implement HVC_GET_VECTORS " Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 19/28] ARM: KVM: Allow the main HYP code to use the init hyp stub implementation Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-24 14:34 ` Christoffer Dall 2017-03-24 14:34 ` Christoffer Dall 2017-03-24 15:01 ` Marc Zyngier 2017-03-24 15:01 ` Marc Zyngier 2017-04-03 17:32 ` Christoffer Dall 2017-04-03 17:32 ` Christoffer Dall 2017-04-03 17:51 ` Marc Zyngier 2017-04-03 17:51 ` Marc Zyngier 2017-04-04 7:36 ` Christoffer Dall 2017-04-04 7:36 ` Christoffer Dall 2017-03-21 19:20 ` Marc Zyngier [this message] 2017-03-21 19:20 ` [PATCH v4 20/28] ARM: KVM: Convert __cpu_reset_hyp_mode to using __hyp_reset_vectors Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 21/28] ARM: KVM: Implement HVC_SOFT_RESTART in the init code Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 22/28] arm/arm64: KVM: Use __hyp_reset_vectors() directly Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 23/28] arm/arm64: KVM: Remove kvm_get_idmap_start Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 24/28] arm/arm64: KVM: Use HVC_RESET_VECTORS to reinit HYP mode Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 25/28] ARM: decompressor: Remove __hyp_get_vectors usage Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-24 14:34 ` Christoffer Dall 2017-03-24 14:34 ` Christoffer Dall 2017-03-24 15:26 ` Marc Zyngier 2017-03-24 15:26 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 26/28] ARM: hyp-stub/KVM: Kill __hyp_get_vectors Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 27/28] arm64: " Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-21 19:20 ` [PATCH v4 28/28] arm/arm64: Add hyp-stub API documentation Marc Zyngier 2017-03-21 19:20 ` Marc Zyngier 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:33 ` Christoffer Dall 2017-03-24 14:42 ` Marc Zyngier 2017-03-24 14:42 ` Marc Zyngier 2017-03-24 15:23 ` Christoffer Dall 2017-03-24 15:23 ` Christoffer Dall 2017-03-24 15:57 ` Marc Zyngier 2017-03-24 15:57 ` Marc Zyngier 2017-03-24 16:03 ` Christoffer Dall 2017-03-24 16:03 ` Christoffer Dall 2017-03-22 13:37 ` [PATCH v4 00/28] arm/arm64: KVM: Rework the hyp-stub API Christoffer Dall 2017-03-22 13:37 ` Christoffer Dall 2017-03-22 16:14 ` Marc Zyngier 2017-03-22 16:14 ` Marc Zyngier 2017-03-22 17:27 ` Christoffer Dall 2017-03-22 17:27 ` Christoffer Dall 2017-03-23 10:53 ` Marc Zyngier 2017-03-23 10:53 ` Marc Zyngier 2017-03-23 14:39 ` Christoffer Dall 2017-03-23 14:39 ` Christoffer Dall 2017-03-23 15:16 ` Marc Zyngier 2017-03-23 15:16 ` Marc Zyngier 2017-03-23 15:45 ` Christoffer Dall 2017-03-23 15:45 ` Christoffer Dall 2017-03-22 16:20 ` Catalin Marinas 2017-03-22 16:20 ` Catalin Marinas 2017-03-24 14:36 ` Christoffer Dall 2017-03-24 14:36 ` Christoffer Dall
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=20170321192058.9300-21-marc.zyngier@arm.com \ --to=marc.zyngier@arm.com \ --cc=ard.biesheuvel@linaro.org \ --cc=catalin.marinas@arm.com \ --cc=j-keerthy@ti.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux@arm.linux.org.uk \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.