From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 6/6] xen/arm: disable a physical IRQ when the guest disables the corresponding IRQ Date: Fri, 06 Dec 2013 17:56:18 +0000 Message-ID: <52A20FC2.6090505@linaro.org> References: <1386350808-13648-6-git-send-email-stefano.stabellini@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1386350808-13648-6-git-send-email-stefano.stabellini@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Stefano Stabellini , xen-devel@lists.xen.org Cc: ian.campbell@citrix.com List-Id: xen-devel@lists.xenproject.org On 12/06/2013 05:26 PM, Stefano Stabellini wrote: > Signed-off-by: Stefano Stabellini [..] > static void vgic_enable_irqs(struct vcpu *v, uint32_t r, int n) > { > struct pending_irq *p; > @@ -494,8 +509,10 @@ static int vgic_distr_mmio_write(struct vcpu *v, mmio_info_t *info) > rank = vgic_irq_rank(v, 1, gicd_reg - GICD_ICENABLER); > if ( rank == NULL) goto write_ignore; > vgic_lock_rank(v, rank); > + tr = rank->ienable; > rank->ienable &= ~*r; > vgic_unlock_rank(v, rank); > + vgic_disable_irqs(v, (*r) & (~tr), gicd_reg - GICD_ICENABLER); Why ~tr? We want to disable only enabled IRQ. -- Julien Grall