@@ -1831,7 +1831,7 @@ static int init_service_thread(struct intel_gvt *gvt)
*/
static void intel_gvt_clean_device(struct drm_i915_private *i915)
{
- struct intel_gvt *gvt = fetch_and_zero(&i915->gvt);
+ struct intel_gvt *gvt = xchg(&i915->gvt, NULL);
if (drm_WARN_ON(&i915->drm, !gvt))
return;
@@ -826,7 +826,7 @@ static int dispatch_workload(struct intel_vgpu_workload *workload)
/* We might still need to add request with
* clean ctx to retire it properly..
*/
- rq = fetch_and_zero(&workload->req);
+ rq = xchg(&workload->req, NULL);
i915_request_put(rq);
}
@@ -1103,7 +1103,7 @@ static void complete_current_workload(struct intel_gvt *gvt, int ring_id)
intel_vgpu_trigger_virtual_event(vgpu, event);
}
- i915_request_put(fetch_and_zero(&workload->req));
+ i915_request_put(xchg(&workload->req, 0));
}
gvt_dbg_sched("ring id %d complete workload %p status %d\n",
Macro fetch_and_zero will be dropped. Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com> --- drivers/gpu/drm/i915/gvt/kvmgt.c | 2 +- drivers/gpu/drm/i915/gvt/scheduler.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)