From: Gleb Natapov <gleb@redhat.com>
To: Hannes Reinecke <hare@suse.de>
Cc: LKML <linux-kernel@vger.kernel.org>,
"H. Peter Anvin" <hpa@linux.intel.com>
Subject: Re: [PATCH] EDD: Check for correct EDD 3.0 length
Date: Tue, 15 May 2012 14:59:17 +0300 [thread overview]
Message-ID: <20120515115917.GK32036@redhat.com> (raw)
In-Reply-To: <4FB23C09.7060300@suse.de>
On Tue, May 15, 2012 at 01:20:41PM +0200, Hannes Reinecke wrote:
> On 05/15/2012 01:12 PM, Gleb Natapov wrote:
> > Next time you resent an email say why you are doing it (wrong lkml
> > address in this case).
> >
> > On Tue, May 15, 2012 at 01:04:49PM +0200, Hannes Reinecke wrote:
> >> The device_path_info_length for EDD 3.0 is 36, not 44.
> >> Cf http://mbldr.sourceforge.net/specsedd30.pdf.
> >>
> > That's the wrong spec.
> >
> Ah-ha.
> Why?
www.t13.org/documents/UploadedDocuments/docs2008/e08134r0-BIOS_Enhanced_Disk_Drive_Services_4.0.doc
>
> >> This is a regression introduced by commit
> >> 0c61227094b3ddaca2f847ee287c4a2e3762b5a2
> >>
> >> Signed-off-by: Hannes Reinecke <hare@suse.de>
> >> Cc: Gleb Natapov <gleb@redhat.com>
> >> Cc: H. Peter Anvin <hpa@linux.intel.com>
> >>
> >> diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
> >> index e229576..09a77d5 100644
> >> --- a/drivers/firmware/edd.c
> >> +++ b/drivers/firmware/edd.c
> >> @@ -545,8 +545,8 @@ edd_has_edd30(struct edd_device *edev)
> >> }
> >>
> >>
> >> - /* We support only T13 spec */
> >> - if (info->params.device_path_info_length != 44)
> > Here is the spec that code supports is spelled out, but you just replace
> > the comment with pointer to the spec that the code does not support.
> >
> Hmm? How so?
>
> I have this EDD info:
>
> # hexdump -C raw_data
> 00000000 1e 00 03 00 14 04 00 00 ff 00 00 00 3f 00 00 00
> |............?...|
> 00000010 00 00 00 01 00 00 00 00 00 02 ff ff ff ff dd be
> |................|
> 00000020 24 00 00 00 50 43 49 00 46 49 42 52 45 00 00 00
> |$...PCI.FIBRE...|
> 00000030 07 00 00 00 00 00 00 00 50 01 43 80 01 3c 94 48
> |........P.C..<.H|
> 00000040 01 c8 00 00 00 00 00 00 00 00 |..........|
>
> which used to be perfectly valid, contains an 'interface_type'
> string, and a device path. All perfectly okay.
> And, as mentioned, used to be displayed ok prior to the mentioned
> commit.
>
It is valid according to one spec but invalid according to another.
> So why do you claim we can't display it anymore?
>
Before commit 0c61227094b3ddaca2f847ee287c4a2e3762b5a2 the code didn't
calculate checksum correctly. The check always succeed, so when bios
provided information according to T13 EDD4.0 spec interface_type contained
garbage. After the commit checksum is calculated correctly, but according
to T13 EDD4.0 spec, so for BIOSes that supply info according to another
spec check fails. Since T13 EDD4.0 spec support modern interfaces (RAID,
SATA, SAS) which another spec omits, and for interfaces they both support
T13 EDD4.0 actually supply enough information to link edd entry to actual
device (another spec does not), I do not see support for other spec to
be important, but you are welcome to write support for it if you need
it. The only way I see to check what spec edd info corresponds to is to
calculate checksum according to both specs and see which one succeeds.
--
Gleb.
next prev parent reply other threads:[~2012-05-15 11:59 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-15 11:04 [PATCH] EDD: Check for correct EDD 3.0 length Hannes Reinecke
2012-05-15 11:12 ` Gleb Natapov
2012-05-15 11:20 ` Hannes Reinecke
2012-05-15 11:59 ` Gleb Natapov [this message]
2012-05-15 12:53 ` Gleb Natapov
2012-05-15 13:49 ` Alan Cox
2012-05-15 14:12 ` Gleb Natapov
2012-05-15 14:18 ` Alan Cox
2012-05-15 14:21 ` Gleb Natapov
2012-05-15 14:36 ` Alan Cox
2012-05-15 14:48 ` Gleb Natapov
2012-05-15 14:54 ` Alan Cox
2012-05-15 15:00 ` Gleb Natapov
2012-05-15 14:00 ` Alan Cox
2012-05-15 14:36 ` Gleb Natapov
2012-05-15 14:52 ` Alan Cox
2012-05-15 14:53 ` Gleb Natapov
2012-05-15 15:22 ` Alan Cox
2012-05-15 15:29 ` Gleb Natapov
2012-05-15 15:41 ` Alan Cox
2012-05-15 15:53 ` Gleb Natapov
2012-05-15 15:14 ` Alan Cox
2012-05-15 15:31 ` Alan Cox
2012-05-15 15:46 ` Gleb Natapov
2012-05-15 17:17 ` H. Peter Anvin
-- strict thread matches above, loose matches on Subject: below --
2012-05-16 6:51 Hannes Reinecke
2012-05-16 8:28 ` Gleb Natapov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120515115917.GK32036@redhat.com \
--to=gleb@redhat.com \
--cc=hare@suse.de \
--cc=hpa@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox