Skip to content

Commit 3a79e5a

Browse files
author
Andi Shyti
committed
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@linux.intel.com> Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com> Reviewed-by: Nitin Gote <nitin.r.gote@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250214003437.1311476-1-andi.shyti@linux.intel.com
1 parent c088387 commit 3a79e5a

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -749,15 +749,15 @@ static void swizzle_page(struct page *page)
749749
char *vaddr;
750750
int i;
751751

752-
vaddr = kmap(page);
752+
vaddr = kmap_local_page(page);
753753

754754
for (i = 0; i < PAGE_SIZE; i += 128) {
755755
memcpy(temp, &vaddr[i], 64);
756756
memcpy(&vaddr[i], &vaddr[i + 64], 64);
757757
memcpy(&vaddr[i + 64], temp, 64);
758758
}
759759

760-
kunmap(page);
760+
kunmap_local(vaddr);
761761
}
762762

763763
/**

drivers/gpu/drm/i915/gt/shmem_utils.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,15 @@ static int __shmem_rw(struct file *file, loff_t off,
108108
if (IS_ERR(page))
109109
return PTR_ERR(page);
110110

111-
vaddr = kmap(page);
111+
vaddr = kmap_local_page(page);
112112
if (write) {
113113
memcpy(vaddr + offset_in_page(off), ptr, this);
114114
set_page_dirty(page);
115115
} else {
116116
memcpy(ptr, vaddr + offset_in_page(off), this);
117117
}
118118
mark_page_accessed(page);
119-
kunmap(page);
119+
kunmap_local(vaddr);
120120
put_page(page);
121121

122122
len -= this;
@@ -143,11 +143,11 @@ int shmem_read_to_iosys_map(struct file *file, loff_t off,
143143
if (IS_ERR(page))
144144
return PTR_ERR(page);
145145

146-
vaddr = kmap(page);
146+
vaddr = kmap_local_page(page);
147147
iosys_map_memcpy_to(map, map_off, vaddr + offset_in_page(off),
148148
this);
149149
mark_page_accessed(page);
150-
kunmap(page);
150+
kunmap_local(vaddr);
151151
put_page(page);
152152

153153
len -= this;

0 commit comments

Comments
 (0)