Commit 714ee675 authored by Jonathan Cavitt's avatar Jonathan Cavitt Committed by Matthew Brost
Browse files

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: fb544b84 ("drm/xe: Implement xe_pagefault_queue_work")
Signed-off-by: default avatarJonathan Cavitt <jonathan.cavitt@intel.com>
Suggested-by: default avatarMatthew Brost <matthew.brost@intel.com>
Cc: Shuicheng Lin <shuicheng.lin@intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20260324152935.72444-7-jonathan.cavitt@intel.com
parent aec6969f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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))