dma-buf/reservation: Wrap ww_mutex_trylock
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 21 Feb 2017 09:30:00 +0000 (09:30 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 26 Feb 2017 21:43:44 +0000 (22:43 +0100)
In a similar fashion to reservation_object_lock() and
reservation_object_unlock(), ww_mutex_trylock is also useful and so is
worth wrapping for consistency.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
[danvet: Add __must_check Joonas wants.]
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170221093000.22802-1-chris@chris-wilson.co.uk
include/linux/reservation.h

index 2b5a4679daeade8c1cb6ed195d6725f4799fdf31..156cfd330b6675c79780418e53cd0057410556ec 100644 (file)
@@ -166,6 +166,26 @@ reservation_object_lock(struct reservation_object *obj,
        return ww_mutex_lock(&obj->lock, ctx);
 }
 
+/**
+ * reservation_object_trylock - trylock the reservation object
+ * @obj: the reservation object
+ *
+ * Tries to lock the reservation object for exclusive access and modification.
+ * Note, that the lock is only against other writers, readers will run
+ * concurrently with a writer under RCU. The seqlock is used to notify readers
+ * if they overlap with a writer.
+ *
+ * Also note that since no context is provided, no deadlock protection is
+ * possible.
+ *
+ * Returns true if the lock was acquired, false otherwise.
+ */
+static inline bool __must_check
+reservation_object_trylock(struct reservation_object *obj)
+{
+       return ww_mutex_trylock(&obj->lock);
+}
+
 /**
  * reservation_object_unlock - unlock the reservation object
  * @obj: the reservation object