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
> 

Reply via email to