Re: Oops in 2.6.10-rc1 (almost solved)

From: Matt Domsch
Date: Sat Nov 13 2004 - 22:01:30 EST


On Sat, Nov 13, 2004 at 08:28:35AM -0600, Matt Domsch wrote:
> It still doesn't explain why Christian's BIOS reports more devices
> than he has, that's still UI, so don't re-apply the edd.S patch just reverted.

Alexander van Heukelum noted to me that addw here modifies CF, so I
think something like should fix that. Christian, if you're in a
position to test this, I'd really appreciate it. You've been a
fantastic bug reporter / tester!

Not ready for Linus yet, and you'll need to re-apply the previous
edd.S patch which is now reverted in Linus's tree. As your BIOS
reports via CHECK EXTENSIONS PRESENT that you've got more devices than
you actually have, hopefully the int13 EXTENDED READ won't succeed for
non-existant devices anymore, and then neither will the READ SECTORS
call.

--
Matt Domsch
Sr. Software Engineer, Lead Engineer
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

===== arch/i386/boot/edd.S 1.3 vs edited =====
--- 1.3/arch/i386/boot/edd.S 2004-10-20 03:37:11 -05:00
+++ edited/arch/i386/boot/edd.S 2004-11-13 20:31:58 -06:00
@@ -58,8 +58,12 @@
sti # work around buggy BIOSes
popw %dx
popw %si
- addw $EDD_DEV_ADDR_PACKET_LEN, %sp # remove packet from stack
- jnc edd_mbr_store_sig
+ pushfl # save EFLAGS into ebx
+ popl %ebx # because addw modifies CF
+ addw $EDD_DEV_ADDR_PACKET_LEN, %sp # remove packet from stack
+ pushl %ebx # get back right CF
+ popfl
+ jnc edd_mbr_store_sig
# otherwise, fall through to the legacy read function

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