On Mon, Jul 31, 2017 at 06:26:15PM +0100, Marc Zyngier wrote: > The way we call kvm_vgic_destroy is a bit bizarre. We call it > *after* having freed the vcpus, which sort of defeats the point > of cleaning up things before that point. > > Let's move kvm_vgic_destroy towards the beginning of kvm_arch_destroy_vm, > which seems more sensible. > Acked-by: Christoffer Dall <cdall@xxxxxxxxxx> > Signed-off-by: Marc Zyngier <marc.zyngier@xxxxxxx> > --- > virt/kvm/arm/arm.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/virt/kvm/arm/arm.c b/virt/kvm/arm/arm.c > index 7846a578db1a..ebab6c29e3be 100644 > --- a/virt/kvm/arm/arm.c > +++ b/virt/kvm/arm/arm.c > @@ -177,6 +177,8 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > { > int i; > > + kvm_vgic_destroy(kvm); > + > free_percpu(kvm->arch.last_vcpu_ran); > kvm->arch.last_vcpu_ran = NULL; > > @@ -186,8 +188,6 @@ void kvm_arch_destroy_vm(struct kvm *kvm) > kvm->vcpus[i] = NULL; > } > } > - > - kvm_vgic_destroy(kvm); > } > > int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) > -- > 2.11.0 >