mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 09:02:21 -04:00
drm/xe/xe_pagefault: Disallow writes to read-only VMAs
The page fault handler should reject write/atomic access to read only
VMAs. Add code to handle this in xe_pagefault_service after the VMA
lookup.
v2:
- Apply max line length (Matthew)
Fixes: fb544b8445 ("drm/xe: Implement xe_pagefault_queue_work")
Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Cc: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260324152935.72444-7-jonathan.cavitt@intel.com
This commit is contained in:
committed by
Matthew Brost
parent
aec6969f75
commit
714ee6754a
@@ -187,6 +187,12 @@ static int xe_pagefault_service(struct xe_pagefault *pf)
|
||||
goto unlock_vm;
|
||||
}
|
||||
|
||||
if (xe_vma_read_only(vma) &&
|
||||
pf->consumer.access_type != XE_PAGEFAULT_ACCESS_TYPE_READ) {
|
||||
err = -EPERM;
|
||||
goto unlock_vm;
|
||||
}
|
||||
|
||||
atomic = xe_pagefault_access_is_atomic(pf->consumer.access_type);
|
||||
|
||||
if (xe_vma_is_cpu_addr_mirror(vma))
|
||||
|
||||
Reference in New Issue
Block a user