[PATCH v4 08/29] KVM: arm64: make kvm_at() take an OP_AT_*
Marc Zyngier
maz at kernel.org
Thu May 30 01:46:23 AEST 2024
On Fri, 03 May 2024 14:01:26 +0100,
Joey Gouly <joey.gouly at arm.com> wrote:
>
> To allow using newer instructions that current assemblers don't know about,
> replace the `at` instruction with the underlying SYS instruction.
>
> Signed-off-by: Joey Gouly <joey.gouly at arm.com>
> Cc: Marc Zyngier <maz at kernel.org>
> Cc: Oliver Upton <oliver.upton at linux.dev>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will at kernel.org>
> ---
> arch/arm64/include/asm/kvm_asm.h | 3 ++-
> arch/arm64/kvm/hyp/include/hyp/fault.h | 2 +-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/include/asm/kvm_asm.h b/arch/arm64/include/asm/kvm_asm.h
> index 24b5e6b23417..ce65fd0f01b0 100644
> --- a/arch/arm64/include/asm/kvm_asm.h
> +++ b/arch/arm64/include/asm/kvm_asm.h
> @@ -10,6 +10,7 @@
> #include <asm/hyp_image.h>
> #include <asm/insn.h>
> #include <asm/virt.h>
> +#include <asm/sysreg.h>
nit: include order.
>
> #define ARM_EXIT_WITH_SERROR_BIT 31
> #define ARM_EXCEPTION_CODE(x) ((x) & ~(1U << ARM_EXIT_WITH_SERROR_BIT))
> @@ -261,7 +262,7 @@ extern u64 __kvm_get_mdcr_el2(void);
> asm volatile( \
> " mrs %1, spsr_el2\n" \
> " mrs %2, elr_el2\n" \
> - "1: at "at_op", %3\n" \
> + "1: " __msr_s(at_op, "%3") "\n" \
> " isb\n" \
> " b 9f\n" \
> "2: msr spsr_el2, %1\n" \
> diff --git a/arch/arm64/kvm/hyp/include/hyp/fault.h b/arch/arm64/kvm/hyp/include/hyp/fault.h
> index 9e13c1bc2ad5..487c06099d6f 100644
> --- a/arch/arm64/kvm/hyp/include/hyp/fault.h
> +++ b/arch/arm64/kvm/hyp/include/hyp/fault.h
> @@ -27,7 +27,7 @@ static inline bool __translate_far_to_hpfar(u64 far, u64 *hpfar)
> * saved the guest context yet, and we may return early...
> */
> par = read_sysreg_par();
> - if (!__kvm_at("s1e1r", far))
> + if (!__kvm_at(OP_AT_S1E1R, far))
> tmp = read_sysreg_par();
> else
> tmp = SYS_PAR_EL1_F; /* back to the guest */
Reviewed-by: Marc Zyngier <maz at kernel.org>
M.
--
Without deviation from the norm, progress is not possible.
More information about the Linuxppc-dev
mailing list