|
@@ -68,6 +68,7 @@ extern void ttm_eu_backoff_reservation(struct ww_acquire_ctx *ticket,
|
|
|
* non-blocking reserves should be tried.
|
|
|
* @list: thread private list of ttm_validate_buffer structs.
|
|
|
* @intr: should the wait be interruptible
|
|
|
+ * @dups: [out] optional list of duplicates.
|
|
|
*
|
|
|
* Tries to reserve bos pointed to by the list entries for validation.
|
|
|
* If the function returns 0, all buffers are marked as "unfenced",
|
|
@@ -83,6 +84,11 @@ extern void ttm_eu_backoff_reservation(struct ww_acquire_ctx *ticket,
|
|
|
* calling process receives a signal while waiting. In that case, no
|
|
|
* buffers on the list will be reserved upon return.
|
|
|
*
|
|
|
+ * If dups is non NULL all buffers already reserved by the current thread
|
|
|
+ * (e.g. duplicates) are added to this list, otherwise -EALREADY is returned
|
|
|
+ * on the first already reserved buffer and all buffers from the list are
|
|
|
+ * unreserved again.
|
|
|
+ *
|
|
|
* Buffers reserved by this function should be unreserved by
|
|
|
* a call to either ttm_eu_backoff_reservation() or
|
|
|
* ttm_eu_fence_buffer_objects() when command submission is complete or
|
|
@@ -90,7 +96,8 @@ extern void ttm_eu_backoff_reservation(struct ww_acquire_ctx *ticket,
|
|
|
*/
|
|
|
|
|
|
extern int ttm_eu_reserve_buffers(struct ww_acquire_ctx *ticket,
|
|
|
- struct list_head *list, bool intr);
|
|
|
+ struct list_head *list, bool intr,
|
|
|
+ struct list_head *dups);
|
|
|
|
|
|
/**
|
|
|
* function ttm_eu_fence_buffer_objects.
|