On 5/3/24 18:31, Joey Gouly 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.go...@arm.com>
> Cc: Marc Zyngier <m...@kernel.org>
> Cc: Oliver Upton <oliver.up...@linux.dev>
> Cc: Catalin Marinas <catalin.mari...@arm.com>
> Cc: Will Deacon <w...@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>
>  
>  #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 */

I guess this patch has already been included in a different series now.

https://lore.kernel.org/all/20240625133508.259829-6-...@kernel.org/

Reply via email to