Re: [PATCH] Ghost EDD devices in /sys again

From: Andrey Borzenkov
Date: Sat Sep 06 2008 - 13:48:08 EST


On Saturday 06 September 2008, H. Peter Anvin wrote:
>
> Andrey Borzenkov wrote:
> >
> > Was it really that simple?
> >
> > Subject: [PATCH] Fix ghost devices under /sys/firmware/edd
> > From: Andrey Borzenkov <arvidjaar@xxxxxxx>
> >
> > Some BIOSes do not always set CF on error before return from int13.
> > The patch adds additional check for status being zero (AH == 0).
> >
>
> Do you have any evidence that there aren't any BIOSes which leave AH !=
> 0 on legitimate success? If so, you have turned a nuisance bug into
> something that could cause install failures.
>

Hmm ... if install depends on having valid MBR, it will break right
now as well, because it will have duplicated signatures. So at least
something like following is needed.

diff --git a/arch/x86/boot/edd.c b/arch/x86/boot/edd.c
index d93cbc6..4c20d31 100644
--- a/arch/x86/boot/edd.c
+++ b/arch/x86/boot/edd.c
@@ -58,6 +58,7 @@ static u32 read_mbr_sig(u8 devno, struct edd_info *ei, u32 *mbrsig)
if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr)
return -1;

+ memset(mbrbuf_ptr, 0, sector_size);
if (read_mbr(devno, mbrbuf_ptr))
return -1;

Attachment: signature.asc
Description: This is a digitally signed message part.