Re: [PATCH 03/15] arm64: kvm: Fix symbol dependency in __hyp_call_panic_nvhe

Marc Zyngier
2020-05-07T13:22:43Z

On Thu, 30 Apr 2020 15:48:19 +0100,
David Brazdil <dbrazdil@google.com> wrote:
>
> __hyp_call_panic_nvhe contains inline assembly which did not declare
> its dependency on the __hyp_panic_string symbol.
>
> Signed-off-by: David Brazdil <dbrazdil@google.com>
> ---
> arch/arm64/kvm/hyp/switch.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kvm/hyp/switch.c b/arch/arm64/kvm/hyp/switch.c
> index 8a1e81a400e0..7a7c08029d81 100644
> --- a/arch/arm64/kvm/hyp/switch.c
> +++ b/arch/arm64/kvm/hyp/switch.c
> @@ -836,7 +836,7 @@ static void __hyp_text __hyp_call_panic_nvhe(u64 spsr, u64 elr, u64 par,
> * making sure it is a kernel address and not a PC-relative
> * reference.
> */
> - asm volatile("ldr %0, =__hyp_panic_string" : "=r" (str_va));
> + asm volatile("ldr %0, =%1" : "=r" (str_va) : "S" (__hyp_panic_string));
>
> __hyp_do_panic(str_va,
> spsr, elr,
> --
> 2.26.1
>
>

What breaks without this constraint? Is it a fix that should go in
early? Otherwise looks good.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.