RE: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq setting before suspend-to-idle
From: Chen, Yu C
Date: Sat Sep 26 2015 - 10:37:31 EST
> -----Original Message-----
> From: linux-pm-owner@xxxxxxxxxxxxxxx [mailto:linux-pm-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Rafael J. Wysocki
> Sent: Friday, September 25, 2015 9:57 PM
> To: Chen, Yu C
> Cc: Wysocki, Rafael J; jiang.liu@xxxxxxxxxxxxxxx; Zhang, Rui; Brown, Len; linux-
> kernel@xxxxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq setting before
> On Friday, September 25, 2015 06:42:41 AM Chen, Yu C wrote:
> > Hi,Rafael, thanks a lot for your review, will resend v2 version.
> > > -----Original Message-----
> > > From: Rafael J. Wysocki [mailto:rjw@xxxxxxxxxxxxx]
> > > Sent: Friday, September 25, 2015 9:24 AM
> > > To: Chen, Yu C
> > > Cc: Wysocki, Rafael J; jiang.liu@xxxxxxxxxxxxxxx; Zhang, Rui; Brown,
> > > Len; linux- kernel@xxxxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx
> > > Subject: Re: [PATCH][RFC] ACPI / PM: Fix incorrect wakeup irq
> > > setting before suspend-to-idle
> > >
> > > On Monday, August 10, 2015 10:11:26 AM Chen Yu wrote:
> > > > +#ifdef CONFIG_SUSPEND
> > > > + set_wake_irq_freeze(irq);
> > > > +#endif
> Alternatively, you can define an empty static inline stub of
> set_wake_irq_freeze() for CONFIG_SUSPEND and avoid using IS_ENABLED()
> But I'd rather define a global acpi_irq variable, store irq in it and access it
> directly from acpi_freeze_prepare(). And it doesn't have to depend on
> CONFIG_SUSPEND as it is just the IRQ number actually used by ACPI.
OK, I've convert it to a global variable acpi_inuse_irq.
> BTW, I wonder if there are other places using acpi_gbl_FADT.sci_interrupt
> directly which they shouldn't do?
I searched the code and found there are two other potential misuse of
acpi_gbl_FADT.sci_interrupt, they are in acpi_os_remove_interrupt_handler
and acpi_os_wait_events_complete, so I sent out a version 2 patch
> > Oh, do you mean the naming for this variable is un-suitable? OK, I'll
> > change it to acpi_freeze_wake_irq
> No. What I mean is that in theory there may be multiple ACPI interrupts.
> But you need not care about this case because of the
> if (gsi != acpi_gbl_FADT.sci_interrupt)
> return AE_BAD_PARAMETER;
> check in acpi_os_install_interrupt_handler().