From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH 2/2] xen: do not implement irq_mask and irq_unmask in xen_percpu_chip Date: Fri, 6 May 2011 12:27:51 +0100 Message-ID: <1304681271-3836-2-git-send-email-stefano.stabellini@eu.citrix.com> References: <1304681271-3836-1-git-send-email-stefano.stabellini@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <1304681271-3836-1-git-send-email-stefano.stabellini@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: konrad.wilk@oracle.com Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org, Stefano Stabellini , Stefano.Stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org From: Stefano Stabellini irq_mask and irq_unmask are not needed by handle_percpu_irq, but they are called by fixup_irqs when changing affinity. At the moment calling fixup_irqs can result in unmasking an interrupt that was previously masked because of the call to irq_unmask. However xen_percpu_chip doesn't even support irq_set_affinity, and we don't need irq_mask and irq_unmask, so we can just change them to noops, following the example of uv_irq_chip. Signed-off-by: Stefano Stabellini --- drivers/xen/events.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/xen/events.c b/drivers/xen/events.c index bb59651..8eb5316 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c @@ -120,6 +120,7 @@ static struct irq_chip xen_percpu_chip; static struct irq_chip xen_pirq_chip; static void enable_dynirq(struct irq_data *data); static void disable_dynirq(struct irq_data *data); +static void evtchn_noop(struct irq_data *data) { } /* Get info for IRQ */ static struct irq_info *info_for_irq(unsigned irq) @@ -1595,9 +1596,10 @@ static struct irq_chip xen_pirq_chip __read_mostly = { static struct irq_chip xen_percpu_chip __read_mostly = { .name = "xen-percpu", + .irq_enable = enable_dynirq, .irq_disable = disable_dynirq, - .irq_mask = disable_dynirq, - .irq_unmask = enable_dynirq, + .irq_mask = evtchn_noop, + .irq_unmask = evtchn_noop, .irq_ack = ack_dynirq, }; -- 1.7.2.3