From: Matthew Brost Date: Wed, 4 Jun 2025 23:47:12 +0000 (-0700) Subject: drm/xe: Use WRITE_ONCE for range->tile_invalidated update X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0fccfb635ec35850e6c0c9335a7a7fd8a4440e61;p=thirdparty%2Fkernel%2Flinux.git drm/xe: Use WRITE_ONCE for range->tile_invalidated update Updating range->tile_invalidated should be done with WRITE_ONCE to pair with READ_ONCE in opportunistic checks. Signed-off-by: Matthew Brost Reviewed-by: Maarten Lankhrost Link: https://lore.kernel.org/r/20250604234712.2441130-1-matthew.brost@intel.com --- diff --git a/drivers/gpu/drm/xe/xe_svm.c b/drivers/gpu/drm/xe/xe_svm.c index 5f5477d81688f..13abc60490416 100644 --- a/drivers/gpu/drm/xe/xe_svm.c +++ b/drivers/gpu/drm/xe/xe_svm.c @@ -141,7 +141,9 @@ xe_svm_range_notifier_event_begin(struct xe_vm *vm, struct drm_gpusvm_range *r, for_each_tile(tile, xe, id) if (xe_pt_zap_ptes_range(tile, vm, range)) { tile_mask |= BIT(id); - range->tile_invalidated |= BIT(id); + /* Pairs with READ_ONCE in xe_svm_range_is_valid */ + WRITE_ONCE(range->tile_invalidated, + range->tile_invalidated | BIT(id)); } return tile_mask; @@ -644,7 +646,8 @@ static bool xe_svm_range_is_valid(struct xe_svm_range *range, { /* * Advisory only check whether the range currently has a valid mapping, - * READ_ONCE pairs with WRITE_ONCE in xe_pt.c + * READ_ONCE pairs with WRITE_ONCE in xe_pt.c, + * xe_svm_range_notifier_event_begin */ return ((READ_ONCE(range->tile_present) & ~READ_ONCE(range->tile_invalidated)) & BIT(tile->id)) &&