mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
drm/ttm: Fix 'buf' pointer update in ttm_bo_vm_access_kmap() (v2)
The buf pointer was not being incremented inside the loop
meaning the same block of data would be read or written
repeatedly.
(v2) Change 'buf' pointer to uint8_t* type
Cc: stable@vger.kernel.org
Fixes: 09ac4fcb3f
("drm/ttm: Implement vm_operations_struct.access v2")
Signed-off-by: Tom St Denis <tom.stdenis@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a86170290c
commit
95244db2d3
@ -316,7 +316,7 @@ static void ttm_bo_vm_close(struct vm_area_struct *vma)
|
||||
|
||||
static int ttm_bo_vm_access_kmap(struct ttm_buffer_object *bo,
|
||||
unsigned long offset,
|
||||
void *buf, int len, int write)
|
||||
uint8_t *buf, int len, int write)
|
||||
{
|
||||
unsigned long page = offset >> PAGE_SHIFT;
|
||||
unsigned long bytes_left = len;
|
||||
@ -345,6 +345,7 @@ static int ttm_bo_vm_access_kmap(struct ttm_buffer_object *bo,
|
||||
ttm_bo_kunmap(&map);
|
||||
|
||||
page++;
|
||||
buf += bytes;
|
||||
bytes_left -= bytes;
|
||||
offset = 0;
|
||||
} while (bytes_left);
|
||||
|
Loading…
Reference in New Issue
Block a user