Re: [v3.4-rc1] ACPI regression bisected

From: Thomas Gleixner
Date: Thu Apr 12 2012 - 04:57:53 EST


On Thu, 12 Apr 2012, Jörg Otte wrote:

> I tried that patch, for me it works.

> > --- a/drivers/acpi/osl.c
> > +++ b/drivers/acpi/osl.c
> > @@ -607,7 +607,8 @@ acpi_os_install_interrupt_handler(u32 gsi, acpi_osd_handler handler,
> >
> >        acpi_irq_handler = handler;
> >        acpi_irq_context = context;
> > -       if (request_threaded_irq(irq, NULL, acpi_irq, IRQF_SHARED, "acpi",
> > +       if (request_threaded_irq(irq, NULL, acpi_irq,
> > +                                IRQF_SHARED | IRQF_ONESHOT, "acpi",
> >                                 acpi_irq)) {
> >                printk(KERN_ERR PREFIX "SCI (IRQ%d) allocation failed\n", irq);
> >                acpi_irq_handler = NULL;

OK, so now the question is whether the ACPI interrupt can end up being
shared or not.

If it can be shared, then we need a proper primary handler which
silences the interrupt at the device level and the threaded handler
needs to reenable it after finishing the processing.

Len, Andi ???

Thanks,

tglx