linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: linux-ide@vger.kernel.org
Subject: Re: [PATCH 7/12] ide-disk: merge LBA28 and LBA48 Host Protected Area support code
Date: Thu, 25 Oct 2007 21:21:12 +0400	[thread overview]
Message-ID: <4720D088.2010409@ru.mvista.com> (raw)
In-Reply-To: <200710250114.53414.bzolnier@gmail.com>

Hello.

Bartlomiej Zolnierkiewicz wrote:

>>>* Merge idedisk_{read_native,set}_max_address_ext() into
>>>  idedisk_{read_native,set}_max_address().

>>>There should be no functionality changes caused by this patch.

>>    This is unfortunately not achieved...

>>>Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

>>    No cookie this time. :-)

> "Oh, cookie cookie cookie starts with C!" :)

    I thought it all started with web. 8-)

>>>Index: b/drivers/ide/ide-disk.c
>>>===================================================================
>>>--- a/drivers/ide/ide-disk.c
>>>+++ b/drivers/ide/ide-disk.c

>>[...]

>>>@@ -350,31 +353,12 @@ static unsigned long idedisk_read_native
>>> 
>>> 	/* if OK, compute maximum address value */
>>> 	if ((tf->command & 0x01) == 0) {
>>>-		addr = ((tf->device & 0xf) << 24) |
>>>-		       (tf->lbah << 16) | (tf->lbam << 8) | tf->lbal;
>>>-		addr++;	/* since the return value is (maxlba - 1), we add 1 */

>>    Actually, the return value is just maxlba (which is *not* the same as 
>>capacity).

> Indeed, moreover idedisk_{read_native,set}_max_address() comments look
> also incorrect, ditto for the function names.

> Probably if we handle 'addr++'/'addr_req--'/'addr_set++' in
> idedisk_check_hpa() all issues will fix themselves.

> Care to look into it? 

    Still no time...

> [...]

>>>-		high = (tf->hob_lbah << 16) | (tf->hob_lbam << 8) | tf->hob_lbal;
>>>+		if (lba48)
>>>+			high = (tf->hob_lbah << 16) | (tf->hob_lbam << 8) |
>>>+				tf->hob_lbal;
>>>+		else
>>>+			high = tf->device & 0xf;
>>> 		low  = (tf->lbah << 16) | (tf->lbam << 8) | tf->lbal;
>>> 		addr_set = ((__u64)high << 24) | low;
>>> 		addr_set++;

>>    BTW, haven't you noticed that LBA readback code is duplicate? It just asks 
>>to be put into a separate function, like:

>>static u64 ide_read_lba(struct ide_taskfile *tf)
>>{
>>	if (!(tf->command & 0x01)) {
>>		u32 high, low;
>>
>>		if (lba48)
>>			high = (tf->hob_lbah << 16) | (tf->hob_lbam << 8) |
>>				tf->hob_lbal;
>>		else
>>			high = tf->device & 0xf;
>>		low  = (tf->lbah << 16) | (tf->lbam << 8) | tf->lbal;
>>		return (((__u64)high << 24) | low) + 1;
>>	} else
>>		return 0;
>>}

> "back in the days" I even had a patch doing something similar but since
> it is still lost somewhere in the TODO folder + requires update for the
> recent changes (which makes it useless a starting point) it would be
> great if you could cook a patch adding the above helper.

    I'll think about it... :-)

> Thanks for review (especially for catching problem with 'high' variable),
> revised patch:

> [PATCH] ide-disk: merge LBA28 and LBA48 Host Protected Area support code (take 2)

> * Merge idedisk_{read_native,set}_max_address_ext() into
>   idedisk_{read_native,set}_max_address().

> v2:
> * Remove LBA48 code leftover from idedisk_read_native_max_address()
>   ('high' variable initialization).  (Noticed by Sergei).

> There should be no functionality changes caused by this patch.

> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>

MBR, Sergei

      reply	other threads:[~2007-10-25 17:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-08 21:13 [PATCH 7/12] ide-disk: merge LBA28 and LBA48 Host Protected Area support code Bartlomiej Zolnierkiewicz
2007-10-18 12:59 ` Sergei Shtylyov
2007-10-24 23:14   ` Bartlomiej Zolnierkiewicz
2007-10-25 17:21     ` Sergei Shtylyov [this message]

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=4720D088.2010409@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=bzolnier@gmail.com \
    --cc=linux-ide@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;
as well as URLs for NNTP newsgroup(s).