From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752288AbdKHLwS (ORCPT ); Wed, 8 Nov 2017 06:52:18 -0500 Received: from usa-sjc-mx-foss1.foss.arm.com ([217.140.101.70]:60386 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751844AbdKHLwQ (ORCPT ); Wed, 8 Nov 2017 06:52:16 -0500 Subject: Re: [PATCH v5 12/26] KVM: arm/arm64: GICv4: Unmap VLPI when freeing an LPI To: Auger Eric , linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Christoffer Dall , Shanker Donthineni , Mark Rutland , Shameerali Kolothum Thodi , Andre Przywara , Christoffer Dall References: <20171027142855.21584-1-marc.zyngier@arm.com> <20171027142855.21584-13-marc.zyngier@arm.com> <052a6676-c15a-6d91-da1e-660312c29f1b@redhat.com> From: Marc Zyngier Organization: ARM Ltd Message-ID: Date: Wed, 8 Nov 2017 11:52:12 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <052a6676-c15a-6d91-da1e-660312c29f1b@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Language: en-GB Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/11/17 20:28, Auger Eric wrote: > Hi Marc, > > On 27/10/2017 16:28, Marc Zyngier wrote: >> When freeing an LPI (on a DISCARD command, for example), we need >> to unmap the VLPI down to the physical ITS level. >> >> Acked-by: Christoffer Dall >> Signed-off-by: Marc Zyngier >> --- >> virt/kvm/arm/vgic/vgic-its.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c >> index b2a678d131d0..c9b1c0967426 100644 >> --- a/virt/kvm/arm/vgic/vgic-its.c >> +++ b/virt/kvm/arm/vgic/vgic-its.c >> @@ -628,8 +628,12 @@ static void its_free_ite(struct kvm *kvm, struct its_ite *ite) >> list_del(&ite->ite_list); >> >> /* This put matches the get in vgic_add_lpi. */ >> - if (ite->irq) >> + if (ite->irq) { >> + if (ite->irq->hw) >> + WARN_ON(its_unmap_vlpi(ite->irq->host_irq)); >> + >> vgic_put_irq(kvm, ite->irq); > You could have put the its_unmap_vlpi() directly in vgic_put_irq which > is meant to decr the ref/release the LPI irq. Do you see this as an issue? I'm trying hard to keep the GICv4 changes local to the ITS code, and not spread it everywhere in the vgic, but I'll happily change it if you spot something that seems wrong. Thanks, M. -- Jazz is not dead. It just smells funny...