Message ID | 20190606165455.162478-5-marc.zyngier@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: arm/arm64: vgic: ITS translation cache | expand |
Hi Marc, On 6/6/19 6:54 PM, Marc Zyngier wrote: > As we are going to perform some VM-wide operations when freeing > a collection, add the kvm pointer to vgic_its_free_collection. > > Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Eventually do you use that commit in subsequent patches? Thanks Eric > --- > virt/kvm/arm/vgic/vgic-its.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c > index bc370b6c5afa..f637edd77e1f 100644 > --- a/virt/kvm/arm/vgic/vgic-its.c > +++ b/virt/kvm/arm/vgic/vgic-its.c > @@ -885,7 +885,8 @@ static int vgic_its_alloc_collection(struct vgic_its *its, > return 0; > } > > -static void vgic_its_free_collection(struct vgic_its *its, u32 coll_id) > +static void vgic_its_free_collection(struct kvm *kvm, > + struct vgic_its *its, u32 coll_id) > { > struct its_collection *collection; > struct its_device *device; > @@ -974,7 +975,7 @@ static int vgic_its_cmd_handle_mapi(struct kvm *kvm, struct vgic_its *its, > ite = vgic_its_alloc_ite(device, collection, event_id); > if (IS_ERR(ite)) { > if (new_coll) > - vgic_its_free_collection(its, coll_id); > + vgic_its_free_collection(kvm, its, coll_id); > return PTR_ERR(ite); > } > > @@ -984,7 +985,7 @@ static int vgic_its_cmd_handle_mapi(struct kvm *kvm, struct vgic_its *its, > irq = vgic_add_lpi(kvm, lpi_nr, vcpu); > if (IS_ERR(irq)) { > if (new_coll) > - vgic_its_free_collection(its, coll_id); > + vgic_its_free_collection(kvm, its, coll_id); > its_free_ite(kvm, ite); > return PTR_ERR(irq); > } > @@ -1025,7 +1026,7 @@ static void vgic_its_free_collection_list(struct kvm *kvm, struct vgic_its *its) > struct its_collection *cur, *temp; > > list_for_each_entry_safe(cur, temp, &its->collection_list, coll_list) > - vgic_its_free_collection(its, cur->collection_id); > + vgic_its_free_collection(kvm, its, cur->collection_id); > } > > /* Must be called with its_lock mutex held */ > @@ -1110,7 +1111,7 @@ static int vgic_its_cmd_handle_mapc(struct kvm *kvm, struct vgic_its *its, > return E_ITS_MAPC_PROCNUM_OOR; > > if (!valid) { > - vgic_its_free_collection(its, coll_id); > + vgic_its_free_collection(kvm, its, coll_id); > } else { > collection = find_collection(its, coll_id); > >
On 07/06/2019 15:29, Auger Eric wrote: > Hi Marc, > On 6/6/19 6:54 PM, Marc Zyngier wrote: >> As we are going to perform some VM-wide operations when freeing >> a collection, add the kvm pointer to vgic_its_free_collection. >> >> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> > Eventually do you use that commit in subsequent patches? Ah! That's a leftover of a previous version, where I was pointlessly invalidating the cache on MAPC with V=0. You're absolutely right, this patch is completely useless! Thanks, M.
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c index bc370b6c5afa..f637edd77e1f 100644 --- a/virt/kvm/arm/vgic/vgic-its.c +++ b/virt/kvm/arm/vgic/vgic-its.c @@ -885,7 +885,8 @@ static int vgic_its_alloc_collection(struct vgic_its *its, return 0; } -static void vgic_its_free_collection(struct vgic_its *its, u32 coll_id) +static void vgic_its_free_collection(struct kvm *kvm, + struct vgic_its *its, u32 coll_id) { struct its_collection *collection; struct its_device *device; @@ -974,7 +975,7 @@ static int vgic_its_cmd_handle_mapi(struct kvm *kvm, struct vgic_its *its, ite = vgic_its_alloc_ite(device, collection, event_id); if (IS_ERR(ite)) { if (new_coll) - vgic_its_free_collection(its, coll_id); + vgic_its_free_collection(kvm, its, coll_id); return PTR_ERR(ite); } @@ -984,7 +985,7 @@ static int vgic_its_cmd_handle_mapi(struct kvm *kvm, struct vgic_its *its, irq = vgic_add_lpi(kvm, lpi_nr, vcpu); if (IS_ERR(irq)) { if (new_coll) - vgic_its_free_collection(its, coll_id); + vgic_its_free_collection(kvm, its, coll_id); its_free_ite(kvm, ite); return PTR_ERR(irq); } @@ -1025,7 +1026,7 @@ static void vgic_its_free_collection_list(struct kvm *kvm, struct vgic_its *its) struct its_collection *cur, *temp; list_for_each_entry_safe(cur, temp, &its->collection_list, coll_list) - vgic_its_free_collection(its, cur->collection_id); + vgic_its_free_collection(kvm, its, cur->collection_id); } /* Must be called with its_lock mutex held */ @@ -1110,7 +1111,7 @@ static int vgic_its_cmd_handle_mapc(struct kvm *kvm, struct vgic_its *its, return E_ITS_MAPC_PROCNUM_OOR; if (!valid) { - vgic_its_free_collection(its, coll_id); + vgic_its_free_collection(kvm, its, coll_id); } else { collection = find_collection(its, coll_id);
As we are going to perform some VM-wide operations when freeing a collection, add the kvm pointer to vgic_its_free_collection. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> --- virt/kvm/arm/vgic/vgic-its.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)