Hi Andi, 

> -----Original Message-----
> From: Andi Shyti <andi.sh...@linux.intel.com>
> Sent: Friday, February 14, 2025 6:05 AM
> To: intel-gfx <intel-gfx@lists.freedesktop.org>; dri-devel <dri-
> de...@lists.freedesktop.org>
> Cc: Andi Shyti <andi.sh...@linux.intel.com>; Karas, Krzysztof
> <krzysztof.ka...@intel.com>; Gote, Nitin R <nitin.r.g...@intel.com>
> Subject: [PATCH v2] drm/i915/gt: Replace kmap with its safer kmap_local_page
> counterpart
> 
> kmap_local_page(), unlike kmap(), performs a contextualized mapping of pages.
> This means the pages are mapped locally to the thread that created them, 
> making
> them invisible outside the thread and safer to use.
> 
> Replace kmap() and kunmap() with kmap_local_page() and
> kunmap_local() counterparts for improved safety.
> 
> Signed-off-by: Andi Shyti <andi.sh...@linux.intel.com>
> Reviewed-by: Krzysztof Karas <krzysztof.ka...@intel.com>
> ---
> Cc: Nitin Gote <nitin.r.g...@intel.com>
> 
> v1 -> v2:
>  - replaced kmap with the _local version also in the
>    intel_ggtt_fencing.c file. (Thanks Nitin)
> 
>  drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 4 ++--
>  drivers/gpu/drm/i915/gt/shmem_utils.c        | 8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
> b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
> index 0ffba50981e3..00f7cd6debf3 100644
> --- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
> +++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c
> @@ -749,7 +749,7 @@ static void swizzle_page(struct page *page)
>       char *vaddr;
>       int i;
> 
> -     vaddr = kmap(page);
> +     vaddr = kmap_local_page(page);
> 
>       for (i = 0; i < PAGE_SIZE; i += 128) {
>               memcpy(temp, &vaddr[i], 64);
> @@ -757,7 +757,7 @@ static void swizzle_page(struct page *page)
>               memcpy(&vaddr[i + 64], temp, 64);
>       }
> 
> -     kunmap(page);
> +     kunmap_local(vaddr);
>  }
> 
>  /**
> diff --git a/drivers/gpu/drm/i915/gt/shmem_utils.c
> b/drivers/gpu/drm/i915/gt/shmem_utils.c
> index bb696b29ee2c..365c4b8b04f4 100644
> --- a/drivers/gpu/drm/i915/gt/shmem_utils.c
> +++ b/drivers/gpu/drm/i915/gt/shmem_utils.c
> @@ -108,7 +108,7 @@ static int __shmem_rw(struct file *file, loff_t off,
>               if (IS_ERR(page))
>                       return PTR_ERR(page);
> 
> -             vaddr = kmap(page);
> +             vaddr = kmap_local_page(page);
>               if (write) {
>                       memcpy(vaddr + offset_in_page(off), ptr, this);
>                       set_page_dirty(page);
> @@ -116,7 +116,7 @@ static int __shmem_rw(struct file *file, loff_t off,
>                       memcpy(ptr, vaddr + offset_in_page(off), this);
>               }
>               mark_page_accessed(page);
> -             kunmap(page);
> +             kunmap_local(vaddr);
>               put_page(page);
> 
>               len -= this;
> @@ -143,11 +143,11 @@ int shmem_read_to_iosys_map(struct file *file, loff_t
> off,
>               if (IS_ERR(page))
>                       return PTR_ERR(page);
> 
> -             vaddr = kmap(page);
> +             vaddr = kmap_local_page(page);
>               iosys_map_memcpy_to(map, map_off, vaddr +
> offset_in_page(off),
>                                   this);
>               mark_page_accessed(page);
> -             kunmap(page);
> +             kunmap_local(vaddr);
>               put_page(page);
> 
>               len -= this;
> --
> 2.47.2

LGTM.
Reviewed-by: Nitin Gote <nitin.r.g...@intel.com>

Reply via email to