Messages in this thread | | | Date | Mon, 23 Jul 2007 15:34:45 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 2.6.23-rc1] APM detection logic bug fix |
| |
Mikael Pettersson wrote: > Starting with kernel 2.6.23-rc1, the i386 APM driver fails > on several of my machines with the message: > > apm: BIOS not found > > This happens because of a bug in the i386 boot code rewrite > from assembler to C. The original assembly code had the > following code in its APM BIOS presence test (boot/setup.S): > > andw $0x02, %cx # Is 32 bit supported? > je done_apm_bios # No 32-bit, no (good) APM BIOS > > That is, the code bails out if bit 2 is zero. > > In the new C version, this is coded as (boot/apm.c): > > if (cx & 0x02) /* 32 bits supported? */ > return -1; > > Here we see that the test has been accidentally inverted. > > The fix is to negate the test. I've verified that this > allows the APM driver to work again on my affected machines. > > Signed-off-by: Mikael Pettersson <mikpe@it.uu.se> >
Thanks, applied.
-hpa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |