2023-06-14 17:55:52

by Sumitra Sharma

[permalink] [raw]
Subject: [PATCH] drivers/target: Call page_address() on page acquired with GFP_KERNEL flag

rd_allocate_sgl_table() acquires a page with alloc_pages(GFP_KERNEL, 0).
Pages allocated with GFP_KERNEL cannot come from Highmem. This is why
there is no need to call kmap() on them.

Therefore, use a plain page_address() on that page.

Signed-off-by: Sumitra Sharma <[email protected]>
---
drivers/target/target_core_rd.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
index 6648c1c90e19..d8ea6aff39a2 100644
--- a/drivers/target/target_core_rd.c
+++ b/drivers/target/target_core_rd.c
@@ -159,9 +159,8 @@ static int rd_allocate_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *
sg_assign_page(&sg[j], pg);
sg[j].length = PAGE_SIZE;

- p = kmap(pg);
+ p = page_address(pg);
memset(p, init_payload, PAGE_SIZE);
- kunmap(pg);
}

page_offset += sg_per_table;
--
2.25.1



2023-06-26 20:43:28

by Ira Weiny

[permalink] [raw]
Subject: Re: [PATCH] drivers/target: Call page_address() on page acquired with GFP_KERNEL flag

Sumitra Sharma wrote:
> rd_allocate_sgl_table() acquires a page with alloc_pages(GFP_KERNEL, 0).
> Pages allocated with GFP_KERNEL cannot come from Highmem. This is why
> there is no need to call kmap() on them.
>
> Therefore, use a plain page_address() on that page.
>
> Signed-off-by: Sumitra Sharma <[email protected]>

LGTM:

Reviewed-by: Ira Weiny <[email protected]>

> ---
> drivers/target/target_core_rd.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/target/target_core_rd.c b/drivers/target/target_core_rd.c
> index 6648c1c90e19..d8ea6aff39a2 100644
> --- a/drivers/target/target_core_rd.c
> +++ b/drivers/target/target_core_rd.c
> @@ -159,9 +159,8 @@ static int rd_allocate_sgl_table(struct rd_dev *rd_dev, struct rd_dev_sg_table *
> sg_assign_page(&sg[j], pg);
> sg[j].length = PAGE_SIZE;
>
> - p = kmap(pg);
> + p = page_address(pg);
> memset(p, init_payload, PAGE_SIZE);
> - kunmap(pg);
> }
>
> page_offset += sg_per_table;
> --
> 2.25.1
>