RE: [PATCH] drm/i915/gt: Replace kmap with its safer kmap_local_page counterpart

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andi,

> On 2025-01-10 at 11:01:55 +0100, Andi Shyti wrote:
> > 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>

Under gt, kmap() and kunmap() is also used inside swizzle_page() of  intel_ggtt_fencing.c
Can you also replace it?

Thanks,
Nitin

> > ---
> >  drivers/gpu/drm/i915/gt/shmem_utils.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > 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;
> > --
> 
> Reviewed-by: Krzysztof Karas <krzysztof.karas@xxxxxxxxx>
> 
> Krzysztof
> >




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux