Re: ARPM shutdown oops (Re: [stable] [patch 09/12] Fix SMP poweroff hangs)

Jeff Garzik
2007-10-11T18:42:59Z

Linus Torvalds wrote:
>
> On Wed, 10 Oct 2007, Kevin wrote:
>> The last kernel I used was 6.2.22 the "dmesg" the file is attached:
>>
>> dmesg 2.6.22 line 158 > apm: overridden by ACPI.
>>
>> dmesg, APM on, has no line > apm: overridden by ACPI.
>
> Ok, this is the real reason.
>
> The APM code does:
>
> if (PM_IS_ACTIVE()) {
> printk(KERN_NOTICE "apm: overridden by ACPI.\n");
> apm_info.disabled = 1;
> return -ENODEV;
> }
>
> and in previous kernels that would notice that you have ACPI enabled, and
> APM gets shut out, and you never see your buggy APM BIOS.
>
> In 2.6.23, this apparently doesn't happen for some reason.
>
> And I think I see the problem: it's a config change. You don't have
> PM_LEGACY enabled. Your config file diff shows:
>
> -CONFIG_PM_LEGACY=y
> +# CONFIG_PM_LEGACY is not set
>
> I suspect we should make CONFIG_APM either depend on, or select,
> PM_LEGACY. But as far as I can see, nothing has actually changed in this
> area in the kernel, and this bug has been there before - just your config
> change made it appear.
>
> Rafael? Stephen? Opinions? I'd think that making APM depend on
> CONFIG_PM_LEGACY is the right thing to do these days..

Speaking as the author of

[PATCH] move pm_register/etc. to CONFIG_PM_LEGACY, pm_legacy.h

I agree. arch/i386/kernel/apm.c clearly requires
include/linux/pm_legacy.h and the legacy PM API.

I would vote for a dependency rather than select, but don't have any
strong feelings on the matter...

Jeff