Messages in this thread | | | Date | Thu, 30 Jul 2015 10:33:52 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [Bugfix] x86, irq: Fix regression caused by commit d32932d02e18 |
| |
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 <matt@codeblueprint.co.uk> > Tested-and-reported-by: Chen Yu <yu.c.chen@intel.com> > Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> > --- > 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.
| |