Re: [PATCH RFC 24/35] ata: libata-eh: drop nth_page() usage within SG entry

David Hildenbrand
2025-08-22T06:18:53Z

On 22.08.25 03:59, Damien Le Moal wrote:
> On 8/22/25 05:06, David Hildenbrand wrote:
>> It's no longer required to use nth_page() when iterating pages within a
>> single SG entry, so let's drop the nth_page() usage.
>>
>> Cc: Damien Le Moal <dlemoal@kernel.org>
>> Cc: Niklas Cassel <cassel@kernel.org>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> ---
>> drivers/ata/libata-sff.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
>> index 7fc407255eb46..9f5d0f9f6d686 100644
>> --- a/drivers/ata/libata-sff.c
>> +++ b/drivers/ata/libata-sff.c
>> @@ -614,7 +614,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
>> offset = qc->cursg->offset + qc->cursg_ofs;
>>
>> /* get the current page and offset */
>> - page = nth_page(page, (offset >> PAGE_SHIFT));
>> + page += offset / PAGE_SHIFT;
>
> Shouldn't this be "offset >> PAGE_SHIFT" ?

Thanks for taking a look!

Yeah, I already reverted back to "offset >> PAGE_SHIFT" after Linus
mentioned in another mail in this thread that ">> PAGE_SHIFT" is
generally preferred because the compiler cannot optimize as much if
offset would be a signed variable.

So the next version will have the shift again.

--
Cheers

David / dhildenb