Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754835AbbG3IeX (ORCPT ); Thu, 30 Jul 2015 04:34:23 -0400 Received: from www.linutronix.de ([62.245.132.108]:45122 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752542AbbG3IeV (ORCPT ); Thu, 30 Jul 2015 04:34:21 -0400 Date: Thu, 30 Jul 2015 10:33:52 +0200 (CEST) From: Thomas Gleixner To: Jiang Liu cc: Ingo Molnar , Matt Fleming , Chen Yu , "H. Peter Anvin" , x86@kernel.org, Yinghai Lu , Tony Luck , linux-kernel@vger.kernel.org Subject: Re: [Bugfix] x86, irq: Fix regression caused by commit d32932d02e18 In-Reply-To: <1438242695-23531-1-git-send-email-jiang.liu@linux.intel.com> Message-ID: References: <1438242695-23531-1-git-send-email-jiang.liu@linux.intel.com> User-Agent: Alpine 2.11 (DEB 23 2013-08-11) 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 Content-Length: 1911 Lines: 43 On Thu, 30 Jul 2015, Jiang Liu wrote: > Commit d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical > irqdomain interfaces") introduced a regression when converting IOAPIC > to hierarchy irqdomain, which sets wrong irq flow handler for IOAPIC > pins on Surface Pro 3 and causes failure when detecting I2C controllers. > It's caused by using stale attribute value when setting up IOAPIC pins. > With this patch applied, all IOAPIC IRQ configuration are identical > to v4.1 on Surface Pro 3. > > Fixes: d32932d02e18 ("x86/irq: Convert IOAPIC to use hierarchical irqdomain interfaces") > Reported-by: Matt Fleming > Tested-and-reported-by: Chen Yu > Signed-off-by: Jiang Liu > --- > Hi Matt, > Could you please help to test this patch? > Thanks! > Gerry > --- > arch/x86/kernel/apic/io_apic.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c > index 845dc0df2002..206052e55517 100644 > --- a/arch/x86/kernel/apic/io_apic.c > +++ b/arch/x86/kernel/apic/io_apic.c > @@ -943,7 +943,7 @@ static bool mp_check_pin_attr(int irq, struct irq_alloc_info *info) > */ > if (irq < nr_legacy_irqs() && data->count == 1) { > if (info->ioapic_trigger != data->trigger) > - mp_register_handler(irq, data->trigger); > + mp_register_handler(irq, info->ioapic_trigger); > data->entry.trigger = data->trigger = info->ioapic_trigger; > data->entry.polarity = data->polarity = info->ioapic_polarity; Pretty obvious, but I was staring at this very piece of code for hours without spotting it. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/