Re: [PATCH][RESEND] Fix EDD3.0 data verification.

From: Gleb Natapov
Date: Wed Apr 27 2011 - 08:32:51 EST


On Tue, Apr 26, 2011 at 03:42:52PM -0700, H. Peter Anvin wrote:
> On 04/26/2011 01:21 AM, Gleb Natapov wrote:
> > +
> > + /* We support only T13 spec */
> > + if (info->params.device_path_info_length != 44)
> > + return 0;
> > +
>
> Please make it work correctly with both versions of the structure, instead.
>
Current Linux EDD support is written to conform to T13 standard as it
says in the file header:

* BIOS Enhanced Disk Drive Services (EDD)
* conformant to T13 Committee www.t13.org
* projects 1572D, 1484D, 1386D, 1226DT

This patch is only fixes obviously incorrect code in edd_has_edd30()
to do proper check instead of summing random memory and it should be
applied even if we decide that we want to support Phoenix spec too.

I looked into implementing support for Phoenix spec back then when I
wrote the patch and I decided against it. The main (and may be only)
use case for edd module is to provide OS installer with enough info
for it to decide where to install boot loader. Unfortunately Phoenix
EDD spec does not support most modern storage technologies and even for
legacy one such as ATA it does not provide enough info to determine boot
disk correctly (you can't tell the difference between two ATA channels,
T13 spec provides this info in interface path along with PCI address).
So even if we would have support for it the OS installer will have to
check if the information comes from T13 or Phoenix and ignore it if it's
the later.

--
Gleb.
--
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/