lkml.org 
[lkml]   [2023]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] lib/scatterlist: Fix to calculate the last_pg properly
From
On 10/01/2023 7:08, Matthew Wilcox wrote:
> On Mon, Jan 09, 2023 at 04:47:01PM +0200, Yishai Hadas wrote:
>> if (sgt_append->prv) {
>> + unsigned long paddr =
>> + (page_to_pfn(sg_page(sgt_append->prv)) * PAGE_SIZE +
> 1. page_to_pfn() * PAGE_SIZE is spelled page_to_phys()
>
> 2. physical addresses have type phys_addr_t. Oh, wait, paddr isn't a
> physical address, it's a pfn because you divide by PAGE_SIZE at the end.
> But you will get truncation on 32-bit, because page_to_pfn() has type
> unsigned long. Anyway, this shouldn't be called paddr. Maybe last_pfn
> or something?
>
>> + sgt_append->prv->offset + sgt_append->prv->length) /
>> + PAGE_SIZE;

In this area of the patch I just reverted to what we had in 6.1 [1]
where we were good.

I can send V1 and replace the 'paddr' to be called 'last_pfn' if it's
really needed.

Alternatively, we can stay with this patch version unless you can see
here any real issue.

What do you suggest ?

[1] https://elixir.bootlin.com/linux/v6.1.4/source/lib/scatterlist.c#L462

Yishai

\
 
 \ /
  Last update: 2023-03-26 23:34    [W:0.156 / U:3.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site