Hi Andi, > -----Original Message----- > From: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx> > Sent: Friday, February 14, 2025 6:05 AM > To: intel-gfx <intel-gfx@xxxxxxxxxxxxxxxxxxxxx>; dri-devel <dri- > devel@xxxxxxxxxxxxxxxxxxxxx> > Cc: Andi Shyti <andi.shyti@xxxxxxxxxxxxxxx>; Karas, Krzysztof > <krzysztof.karas@xxxxxxxxx>; Gote, Nitin R <nitin.r.gote@xxxxxxxxx> > 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.shyti@xxxxxxxxxxxxxxx> > Reviewed-by: Krzysztof Karas <krzysztof.karas@xxxxxxxxx> > --- > Cc: Nitin Gote <nitin.r.gote@xxxxxxxxx> > > 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.gote@xxxxxxxxx>