[PATCH libdrm] atomic: fix atomic_add_unless() fallback's return value

Eric Engestrom eric at engestrom.ch
Thu Mar 16 00:08:59 UTC 2017


According to the kernel documentation:
  Returns non-zero if @v was not @u, and zero otherwise.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100077
Fixes: 63fc571863aa64683400 ("atomic: add atomic_add_unless()")
Signed-off-by: David Shao <davshao at gmail.com>
Reviewed-by: Eric Engestrom <eric at engestrom.ch>
Signed-off-by: Eric Engestrom <eric at engestrom.ch>
---
 xf86atomic.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xf86atomic.h b/xf86atomic.h
index 922b37da..ecb1ba86 100644
--- a/xf86atomic.h
+++ b/xf86atomic.h
@@ -111,7 +111,7 @@ static inline int atomic_add_unless(atomic_t *v, int add, int unless)
 	c = atomic_read(v);
 	while (c != unless && (old = atomic_cmpxchg(v, c, c + add)) != c)
 		c = old;
-	return c == unless;
+	return c != unless;
 }
 
 #endif
-- 
Cheers,
  Eric



More information about the dri-devel mailing list