Subject: [PATCH v3 00/19] KVM GICv3 emulation

From: [email-masked] (Christoffer Dall)
Date: Thu, 6 Nov 2014 12:21:25 +0100

On Thu, Nov 06, 2014 at 11:57:51AM +0100, Christoffer Dall wrote:
> On Fri, Oct 31, 2014 at 05:26:35PM +0000, Andre Przywara wrote:
> 
> [...]
> 
> > 
> > Please review and test.
> > I would be grateful for people to test for GICv2 regressions also
> > (so on a GICv2 host with current kvmtool/qemu), as there is quite
> > some refactoring on that front.
> > 
> So looking at the final result, we have a very strange flow with the
> vgic_create() and kvm_vgic_create() functions.  I lost track in all the
> rewrite patches how this happened exactly, but what I think you want to
> end up with is:
> 
> one exported function:
> int kvm_vgic_create(struct kvm_device *dev, u32 type);
> 
> which calls a static function:
> static int vgic_create(struct kvm *kvm, u32 type);
> 
> or simply inline the static one in the exported one, I can't seem to
> find other callers.
> 
Strike that, my cscope setup was messed up.

What I think you want is a static vgic_v3_create in vgic-v3-emul.c that
digs out the struct kvm pointer from the struct kvm_device and calls
kvm_vgic_create() and also just copy that single kfree(dev) line into
vgic_v3_destroy in vgic-v3-emul.c and the same for v2.

Thanks,
-Christoffer