From: Marc Zyngier <marc.zyngier@arm.com>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>,
catalin.marinas@arm.com, will.deacon@arm.com,
mark.rutland@arm.com
Cc: linaro-kernel@lists.linaro.org, christoffer.dall@linaro.org,
geoff@infradead.org, kexec@lists.infradead.org,
linux-kernel@vger.kernel.org, broonie@kernel.org,
david.griego@linaro.org, linux-arm-kernel@lists.infradead.org,
freddy77@gmail.com
Subject: Re: [v4 4/4] arm: kvm: add stub implementation for kvm_cpu_reset()
Date: Tue, 26 May 2015 10:36:36 +0100 [thread overview]
Message-ID: <55643EA4.4080206@arm.com> (raw)
In-Reply-To: <1431047884-5637-5-git-send-email-takahiro.akashi@linaro.org>
On 08/05/15 02:18, AKASHI Takahiro wrote:
> Just to avoid compiling errors on arm.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
> arch/arm/include/asm/kvm_asm.h | 1 +
> arch/arm/include/asm/kvm_host.h | 12 ++++++++++++
> arch/arm/include/asm/kvm_mmu.h | 5 +++++
> arch/arm/kvm/init.S | 6 ++++++
> 4 files changed, 24 insertions(+)
>
> diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h
> index 25410b2..462babf 100644
> --- a/arch/arm/include/asm/kvm_asm.h
> +++ b/arch/arm/include/asm/kvm_asm.h
> @@ -85,6 +85,7 @@ struct kvm_vcpu;
>
> extern char __kvm_hyp_init[];
> extern char __kvm_hyp_init_end[];
> +extern char __kvm_hyp_reset[];
>
> extern char __kvm_hyp_exit[];
> extern char __kvm_hyp_exit_end[];
> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> index ca97764..6d38134 100644
> --- a/arch/arm/include/asm/kvm_host.h
> +++ b/arch/arm/include/asm/kvm_host.h
> @@ -220,6 +220,18 @@ static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
> kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr);
> }
>
> +static inline void __cpu_reset_hyp_mode(phys_addr_t boot_pgd_ptr,
> + phys_addr_t phys_idmap_start,
> + unsigned long stub_vector_ptr,
> + unsigned long reset_func)
> +{
> + /*
> + * TODO
> + * kvm_call_reset(boot_pgd_ptr, phys_idmap_start, stub_vector_ptr,
> + * reset_func);
> + */
> +}
> +
> static inline int kvm_arch_dev_ioctl_check_extension(long ext)
> {
> return 0;
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 37ca2a4..d85bcd1 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -66,6 +66,7 @@ void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu);
> phys_addr_t kvm_mmu_get_httbr(void);
> phys_addr_t kvm_mmu_get_boot_httbr(void);
> phys_addr_t kvm_get_idmap_vector(void);
> +phys_addr_t kvm_get_idmap_start(void);
> int kvm_mmu_init(void);
> void kvm_clear_hyp_idmap(void);
>
> @@ -270,6 +271,10 @@ static inline void __kvm_flush_dcache_pud(pud_t pud)
> void kvm_set_way_flush(struct kvm_vcpu *vcpu);
> void kvm_toggle_cache(struct kvm_vcpu *vcpu, bool was_enabled);
>
> +extern char __hyp_idmap_text_start[];
> +#define kvm_virt_to_trampoline(x) \
> + (TRAMPOLINE_VA + ((x) - __hyp_idmap_text_start))
> +
> #endif /* !__ASSEMBLY__ */
>
> #endif /* __ARM_KVM_MMU_H__ */
> diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S
> index 3988e72..9178c9a 100644
> --- a/arch/arm/kvm/init.S
> +++ b/arch/arm/kvm/init.S
> @@ -156,4 +156,10 @@ target: @ We're now in the trampoline code, switch page tables
> .globl __kvm_hyp_init_end
> __kvm_hyp_init_end:
>
> + .globl __kvm_hyp_reset
> +__kvm_hyp_reset:
> + @ TODO
> +
> + eret
> +
> .popsection
>
So before this patch, KVM is broken on ARM. This is not acceptable.
Please merge it with patch #1.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: marc.zyngier@arm.com (Marc Zyngier)
To: linux-arm-kernel@lists.infradead.org
Subject: [v4 4/4] arm: kvm: add stub implementation for kvm_cpu_reset()
Date: Tue, 26 May 2015 10:36:36 +0100 [thread overview]
Message-ID: <55643EA4.4080206@arm.com> (raw)
In-Reply-To: <1431047884-5637-5-git-send-email-takahiro.akashi@linaro.org>
On 08/05/15 02:18, AKASHI Takahiro wrote:
> Just to avoid compiling errors on arm.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
> arch/arm/include/asm/kvm_asm.h | 1 +
> arch/arm/include/asm/kvm_host.h | 12 ++++++++++++
> arch/arm/include/asm/kvm_mmu.h | 5 +++++
> arch/arm/kvm/init.S | 6 ++++++
> 4 files changed, 24 insertions(+)
>
> diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h
> index 25410b2..462babf 100644
> --- a/arch/arm/include/asm/kvm_asm.h
> +++ b/arch/arm/include/asm/kvm_asm.h
> @@ -85,6 +85,7 @@ struct kvm_vcpu;
>
> extern char __kvm_hyp_init[];
> extern char __kvm_hyp_init_end[];
> +extern char __kvm_hyp_reset[];
>
> extern char __kvm_hyp_exit[];
> extern char __kvm_hyp_exit_end[];
> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> index ca97764..6d38134 100644
> --- a/arch/arm/include/asm/kvm_host.h
> +++ b/arch/arm/include/asm/kvm_host.h
> @@ -220,6 +220,18 @@ static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
> kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr);
> }
>
> +static inline void __cpu_reset_hyp_mode(phys_addr_t boot_pgd_ptr,
> + phys_addr_t phys_idmap_start,
> + unsigned long stub_vector_ptr,
> + unsigned long reset_func)
> +{
> + /*
> + * TODO
> + * kvm_call_reset(boot_pgd_ptr, phys_idmap_start, stub_vector_ptr,
> + * reset_func);
> + */
> +}
> +
> static inline int kvm_arch_dev_ioctl_check_extension(long ext)
> {
> return 0;
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 37ca2a4..d85bcd1 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -66,6 +66,7 @@ void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu);
> phys_addr_t kvm_mmu_get_httbr(void);
> phys_addr_t kvm_mmu_get_boot_httbr(void);
> phys_addr_t kvm_get_idmap_vector(void);
> +phys_addr_t kvm_get_idmap_start(void);
> int kvm_mmu_init(void);
> void kvm_clear_hyp_idmap(void);
>
> @@ -270,6 +271,10 @@ static inline void __kvm_flush_dcache_pud(pud_t pud)
> void kvm_set_way_flush(struct kvm_vcpu *vcpu);
> void kvm_toggle_cache(struct kvm_vcpu *vcpu, bool was_enabled);
>
> +extern char __hyp_idmap_text_start[];
> +#define kvm_virt_to_trampoline(x) \
> + (TRAMPOLINE_VA + ((x) - __hyp_idmap_text_start))
> +
> #endif /* !__ASSEMBLY__ */
>
> #endif /* __ARM_KVM_MMU_H__ */
> diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S
> index 3988e72..9178c9a 100644
> --- a/arch/arm/kvm/init.S
> +++ b/arch/arm/kvm/init.S
> @@ -156,4 +156,10 @@ target: @ We're now in the trampoline code, switch page tables
> .globl __kvm_hyp_init_end
> __kvm_hyp_init_end:
>
> + .globl __kvm_hyp_reset
> +__kvm_hyp_reset:
> + @ TODO
> +
> + eret
> +
> .popsection
>
So before this patch, KVM is broken on ARM. This is not acceptable.
Please merge it with patch #1.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <marc.zyngier@arm.com>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>,
catalin.marinas@arm.com, will.deacon@arm.com,
mark.rutland@arm.com
Cc: linux-arm-kernel@lists.infradead.org,
linaro-kernel@lists.linaro.org, geoff@infradead.org,
kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
broonie@kernel.org, david.griego@linaro.org,
christoffer.dall@linaro.org, freddy77@gmail.com
Subject: Re: [v4 4/4] arm: kvm: add stub implementation for kvm_cpu_reset()
Date: Tue, 26 May 2015 10:36:36 +0100 [thread overview]
Message-ID: <55643EA4.4080206@arm.com> (raw)
In-Reply-To: <1431047884-5637-5-git-send-email-takahiro.akashi@linaro.org>
On 08/05/15 02:18, AKASHI Takahiro wrote:
> Just to avoid compiling errors on arm.
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
> ---
> arch/arm/include/asm/kvm_asm.h | 1 +
> arch/arm/include/asm/kvm_host.h | 12 ++++++++++++
> arch/arm/include/asm/kvm_mmu.h | 5 +++++
> arch/arm/kvm/init.S | 6 ++++++
> 4 files changed, 24 insertions(+)
>
> diff --git a/arch/arm/include/asm/kvm_asm.h b/arch/arm/include/asm/kvm_asm.h
> index 25410b2..462babf 100644
> --- a/arch/arm/include/asm/kvm_asm.h
> +++ b/arch/arm/include/asm/kvm_asm.h
> @@ -85,6 +85,7 @@ struct kvm_vcpu;
>
> extern char __kvm_hyp_init[];
> extern char __kvm_hyp_init_end[];
> +extern char __kvm_hyp_reset[];
>
> extern char __kvm_hyp_exit[];
> extern char __kvm_hyp_exit_end[];
> diff --git a/arch/arm/include/asm/kvm_host.h b/arch/arm/include/asm/kvm_host.h
> index ca97764..6d38134 100644
> --- a/arch/arm/include/asm/kvm_host.h
> +++ b/arch/arm/include/asm/kvm_host.h
> @@ -220,6 +220,18 @@ static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
> kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr);
> }
>
> +static inline void __cpu_reset_hyp_mode(phys_addr_t boot_pgd_ptr,
> + phys_addr_t phys_idmap_start,
> + unsigned long stub_vector_ptr,
> + unsigned long reset_func)
> +{
> + /*
> + * TODO
> + * kvm_call_reset(boot_pgd_ptr, phys_idmap_start, stub_vector_ptr,
> + * reset_func);
> + */
> +}
> +
> static inline int kvm_arch_dev_ioctl_check_extension(long ext)
> {
> return 0;
> diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
> index 37ca2a4..d85bcd1 100644
> --- a/arch/arm/include/asm/kvm_mmu.h
> +++ b/arch/arm/include/asm/kvm_mmu.h
> @@ -66,6 +66,7 @@ void kvm_mmu_free_memory_caches(struct kvm_vcpu *vcpu);
> phys_addr_t kvm_mmu_get_httbr(void);
> phys_addr_t kvm_mmu_get_boot_httbr(void);
> phys_addr_t kvm_get_idmap_vector(void);
> +phys_addr_t kvm_get_idmap_start(void);
> int kvm_mmu_init(void);
> void kvm_clear_hyp_idmap(void);
>
> @@ -270,6 +271,10 @@ static inline void __kvm_flush_dcache_pud(pud_t pud)
> void kvm_set_way_flush(struct kvm_vcpu *vcpu);
> void kvm_toggle_cache(struct kvm_vcpu *vcpu, bool was_enabled);
>
> +extern char __hyp_idmap_text_start[];
> +#define kvm_virt_to_trampoline(x) \
> + (TRAMPOLINE_VA + ((x) - __hyp_idmap_text_start))
> +
> #endif /* !__ASSEMBLY__ */
>
> #endif /* __ARM_KVM_MMU_H__ */
> diff --git a/arch/arm/kvm/init.S b/arch/arm/kvm/init.S
> index 3988e72..9178c9a 100644
> --- a/arch/arm/kvm/init.S
> +++ b/arch/arm/kvm/init.S
> @@ -156,4 +156,10 @@ target: @ We're now in the trampoline code, switch page tables
> .globl __kvm_hyp_init_end
> __kvm_hyp_init_end:
>
> + .globl __kvm_hyp_reset
> +__kvm_hyp_reset:
> + @ TODO
> +
> + eret
> +
> .popsection
>
So before this patch, KVM is broken on ARM. This is not acceptable.
Please merge it with patch #1.
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2015-05-26 9:36 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-08 1:18 [v4 0/4] arm64: kvm: reset hyp context for kexec AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` [v4 1/4] arm64: kvm: add a cpu tear-down function AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-26 9:26 ` Marc Zyngier
2015-05-26 9:26 ` Marc Zyngier
2015-05-26 9:26 ` Marc Zyngier
2015-05-27 5:21 ` AKASHI Takahiro
2015-05-27 5:21 ` AKASHI Takahiro
2015-05-27 5:21 ` AKASHI Takahiro
2015-05-27 7:42 ` Marc Zyngier
2015-05-27 7:42 ` Marc Zyngier
2015-05-27 7:42 ` Marc Zyngier
2015-05-08 1:18 ` [v4 2/4] arm64: kvm: add kvm cpu hotplug AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-26 9:35 ` Marc Zyngier
2015-05-26 9:35 ` Marc Zyngier
2015-05-26 9:35 ` Marc Zyngier
2015-05-27 5:29 ` AKASHI Takahiro
2015-05-27 5:29 ` AKASHI Takahiro
2015-05-27 5:29 ` AKASHI Takahiro
2015-05-08 1:18 ` [v4 3/4] arm64: kvm: remove !KEXEC dependency AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` [v4 4/4] arm: kvm: add stub implementation for kvm_cpu_reset() AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-08 1:18 ` AKASHI Takahiro
2015-05-26 9:36 ` Marc Zyngier [this message]
2015-05-26 9:36 ` Marc Zyngier
2015-05-26 9:36 ` Marc Zyngier
2015-05-27 5:31 ` AKASHI Takahiro
2015-05-27 5:31 ` AKASHI Takahiro
2015-05-27 5:31 ` AKASHI Takahiro
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=55643EA4.4080206@arm.com \
--to=marc.zyngier@arm.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=david.griego@linaro.org \
--cc=freddy77@gmail.com \
--cc=geoff@infradead.org \
--cc=kexec@lists.infradead.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=takahiro.akashi@linaro.org \
--cc=will.deacon@arm.com \
/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 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.