OSDN Git Service

drm/i915: Check for error before calling cmpxchg()
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Dec 2019 16:04:26 +0000 (16:04 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 6 Dec 2019 19:09:33 +0000 (19:09 +0000)
Only do the locked compare of the existing fence->error if we actually
need to set an error. As we tend to call i915_sw_fence_set_error_once()
unconditionally, it saves on typing to put the common has-error check
into the inline.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191206160428.1503343-1-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_sw_fence.h

index 1e90d9a..19e806c 100644 (file)
@@ -112,7 +112,8 @@ static inline void i915_sw_fence_wait(struct i915_sw_fence *fence)
 static inline void
 i915_sw_fence_set_error_once(struct i915_sw_fence *fence, int error)
 {
-       cmpxchg(&fence->error, 0, error);
+       if (unlikely(error))
+               cmpxchg(&fence->error, 0, error);
 }
 
 #endif /* _I915_SW_FENCE_H_ */