On Mon, 30 Nov 2015 09:59:32 +0000 Alex Bennée <alex.bennee@xxxxxxxxxx> wrote: > > Marc Zyngier <marc.zyngier@xxxxxxx> writes: > > > Implement the vgic-v3 save restore as a direct translation of > > the assembly code version. > > > > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > > --- > > arch/arm64/kvm/hyp/Makefile | 1 + > > arch/arm64/kvm/hyp/hyp.h | 3 + > > arch/arm64/kvm/hyp/vgic-v3-sr.c | 222 ++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 226 insertions(+) > > create mode 100644 arch/arm64/kvm/hyp/vgic-v3-sr.c > > > > diff --git a/arch/arm64/kvm/hyp/Makefile b/arch/arm64/kvm/hyp/Makefile > > index d8d5968..d1e38ce 100644 > > --- a/arch/arm64/kvm/hyp/Makefile > > +++ b/arch/arm64/kvm/hyp/Makefile > > @@ -3,3 +3,4 @@ > > # > > > > obj-$(CONFIG_KVM_ARM_HOST) += vgic-v2-sr.o > > +obj-$(CONFIG_KVM_ARM_HOST) += vgic-v3-sr.o > > diff --git a/arch/arm64/kvm/hyp/hyp.h b/arch/arm64/kvm/hyp/hyp.h > > index 78f25c4..a31cb6e 100644 > > --- a/arch/arm64/kvm/hyp/hyp.h > > +++ b/arch/arm64/kvm/hyp/hyp.h > > @@ -30,5 +30,8 @@ > > void __vgic_v2_save_state(struct kvm_vcpu *vcpu); > > void __vgic_v2_restore_state(struct kvm_vcpu *vcpu); > > > > +void __vgic_v3_save_state(struct kvm_vcpu *vcpu); > > +void __vgic_v3_restore_state(struct kvm_vcpu *vcpu); > > + > > #endif /* __ARM64_KVM_HYP_H__ */ > > > > diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c > > new file mode 100644 > > index 0000000..b490db5 > > --- /dev/null > > +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c > > @@ -0,0 +1,222 @@ > > +/* > > + * Copyright (C) 2012-2015 - ARM Ltd > > + * Author: Marc Zyngier <marc.zyngier@xxxxxxx> > > + * > > + * This program is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + * > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + * > > + * You should have received a copy of the GNU General Public License > > + * along with this program. If not, see <http://www.gnu.org/licenses/>. > > + */ > > + > > +#include <linux/compiler.h> > > +#include <linux/irqchip/arm-gic-v3.h> > > This include starts spitting out compiler warnings due to use of > undefined barrier primitives. I'm not sure where the best place to: > > #include <asm/barrier.h> > > is. I added it to: > > arch/arm64/include/asm/arch_gicv3.h I already have a couple of fixes queued to that effect in my tree, hopefully heading for 4.4-rc4. If you pull the branch I have on korg, you'll get the whole thing that should compile without warning. Thanks, M. -- Without deviation from the norm, progress is not possible. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html