On Thu, Apr 24, 2025 at 02:38:06PM +0000, Jonathan Cavitt wrote: > The page fault handler should reject write/atomic access to read only > VMAs. Add code to handle this in handle_pagefault after the VMA lookup. > > Fixes: 3d420e9fa848 ("drm/xe: Rework GPU page fault handling") > Signed-off-by: Jonathan Cavitt <jonathan.cav...@intel.com> > Suggested-by: Matthew Brost <matthew.br...@intel.com>
Reviewed-by: Matthew Brost <matthew.br...@intel.com> > Reviewed-by: Shuicheng Lin <shuicheng....@intel.com> > --- > drivers/gpu/drm/xe/xe_gt_pagefault.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/xe/xe_gt_pagefault.c > b/drivers/gpu/drm/xe/xe_gt_pagefault.c > index 10622ca471a2..d4e3b7eb165a 100644 > --- a/drivers/gpu/drm/xe/xe_gt_pagefault.c > +++ b/drivers/gpu/drm/xe/xe_gt_pagefault.c > @@ -237,6 +237,11 @@ static int handle_pagefault(struct xe_gt *gt, struct > pagefault *pf) > goto unlock_vm; > } > > + if (xe_vma_read_only(vma) && pf->access_type != ACCESS_TYPE_READ) { > + err = -EPERM; > + goto unlock_vm; > + } > + > atomic = access_is_atomic(pf->access_type); > > if (xe_vma_is_cpu_addr_mirror(vma)) > -- > 2.43.0 >