Re: apm broken - again (2.1.122) + FIX

Stephen Rothwell (Stephen.Rothwell@canb.auug.org.au)
Fri, 18 Sep 1998 00:11:15 +1000 (EST)


> From: Marc Lehmann <pcg@goof.com>
> Subject: apm broken - again (2.1.122) + FIX
> Date: Thu, 17 Sep 1998 23:10:05 +1000
>
> On one sunny day, somebody disabled APM+SMP, causing kernel oopses everytime
> I try to switch of my machine (using apm). The stated reason was (I believe),
> that APM does not work with SMP. But fact is:
>
> - APM poweroff works fine here when APM+SMP is enabled

APM support is not even weel defined in an SMP environment - if yours
works, I am not sure how (but I don't understand the SMP stuff anyway).
Also hoving APM support enabled under SMP will be disabling interrupts
every second while the BIOS is called - something that (I think) should
not be done with SMP.

> - APM poweroff causes an oops with the current apm.c

This has always been true when apm support is enabled in the kernel
but no APM BIOS exists - which is what you effectively have on all
SMP systems. I am currently fixing this.

> I "fixed" it by commenting out the first "return;" in apm_bios.c, send a bug
> report to the kernel list, and forgot about it.
>
> Now, it wasn't fixed, but 2.1.122 reintroduced it (not really, 2.1.122 just
> renamed apm_bios.c)
>
> So, again, what purpose has this code in apm.c:
>
> #ifdef __SMP__
> if (smp_num_cpus > 1) {
> printk(KERN_NOTICE "APM disabled: APM is not SMP safe.\n");
> return;
> }
> #endif

read the printk - it is correct ...

> with it, I get oopses, without it everything works fine. Yes, I'm not
> enabling any powersaving, I just want an automatic power-off, and the
> current code is (and was) buggy.

You will have to try another way to do auto power off. The current code
is correct (except for the OOPS at shutdown which I am currently fixing).

Cheers,
Stephen Rothwell

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/