From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760138Ab1JGQaI (ORCPT ); Fri, 7 Oct 2011 12:30:08 -0400 Received: from www.linutronix.de ([62.245.132.108]:43068 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753329Ab1JGQaE (ORCPT ); Fri, 7 Oct 2011 12:30:04 -0400 Date: Fri, 7 Oct 2011 18:29:56 +0200 (CEST) From: Thomas Gleixner To: Ian Campbell cc: Jeremy Fitzhardinge , Konrad Rzeszutek Wilk , xen-devel , linux-kernel , "Rafael J. Wysocki" Subject: Re: xen: IPI interrupts not resumed early enough on suspend/resume In-Reply-To: <1318001583.21903.355.camel@zakaz.uk.xensource.com> Message-ID: References: <1317654626.21903.72.camel@zakaz.uk.xensource.com> <1317668908.11991.20.camel@dagon.hellion.org.uk> <1318001583.21903.355.camel@zakaz.uk.xensource.com> User-Agent: Alpine 2.02 (LFD 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 7 Oct 2011, Ian Campbell wrote: > On Mon, 2011-10-03 at 22:35 +0200, Thomas Gleixner wrote: > /** > + * irq_pm_syscore_ops - enable interrupt lines early > + * > + * Enable all interrupt lines with %IRQF_EARLY_RESUME set > + */ > +static void irq_pm_syscore_resume(void) > +{ > + struct irq_desc *desc; > + int irq; > + > + for_each_irq_desc(irq, desc) { > + unsigned long flags; > + > + if (!desc->action || !(desc->action->flags & IRQF_EARLY_RESUME)) > + continue; > + > + raw_spin_lock_irqsave(&desc->lock, flags); > + __enable_irq(desc, irq, true); > + raw_spin_unlock_irqrestore(&desc->lock, flags); > + } > +} Come on, this is a full copy of resume_device_irqs(). What about having a common function with an (bool early) argument and call it from both syscore and resume_device? Thanks, tglx