> #ifdef CONFIG_CPU_PM
> DEFINE(CPU_CTX_SP, offsetof(struct cpu_suspend_ctx, sp));
> diff --git a/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> b/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> index 1697d25756e9..f999a35b2c8c 100644
> --- a/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> +++ b/arch/arm64/kvm/hyp/nvhe/hyp-init.S
> @@ -6,6 +6,7 @@
>
> #include <linux/arm-smccc.h>
> #include <linux/linkage.h>
> +#include <linux/irqchip/arm-gic-v3.h>
This should probably be included from the file that provides init_el2_state.
Agreed. This is a workaround for the fact that the arm-gic* headers don't play
nice with each other (define the same constants).
Including arm-gic-v3.h in
kvm_asm.h will trigger macro redefine warnings in vgic*-v2.c because they
include arm-gic.h.
Another option is to create a header just for el2 init. Would that be
preferable? Other ideas?