[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140224163001.20485.26677.stgit@patser>
Date: Mon, 24 Feb 2014 17:30:04 +0100
From: Maarten Lankhorst <maarten.lankhorst@...onical.com>
To: linux-kernel@...r.kernel.org
Cc: linux-arch@...r.kernel.org, ccross@...gle.com,
linaro-mm-sig@...ts.linaro.org, robdclark@...il.com,
dri-devel@...ts.freedesktop.org, daniel@...ll.ch,
sumit.semwal@...aro.org, linux-media@...r.kernel.org
Subject: [PATCH 5/6] reservation: add support for fences to enable
cross-device synchronisation
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@...onical.com>
Reviewed-by: Rob Clark <robdclark@...il.com>
---
include/linux/reservation.h | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/include/linux/reservation.h b/include/linux/reservation.h
index 813dae960ebd..f3f57460a205 100644
--- a/include/linux/reservation.h
+++ b/include/linux/reservation.h
@@ -6,7 +6,7 @@
* Copyright (C) 2012 Texas Instruments
*
* Authors:
- * Rob Clark <rob.clark@...aro.org>
+ * Rob Clark <robdclark@...il.com>
* Maarten Lankhorst <maarten.lankhorst@...onical.com>
* Thomas Hellstrom <thellstrom-at-vmware-dot-com>
*
@@ -40,22 +40,40 @@
#define _LINUX_RESERVATION_H
#include <linux/ww_mutex.h>
+#include <linux/fence.h>
+#include <linux/slab.h>
extern struct ww_class reservation_ww_class;
struct reservation_object {
struct ww_mutex lock;
+
+ struct fence *fence_excl;
+ struct fence **fence_shared;
+ u32 fence_shared_count, fence_shared_max;
};
static inline void
reservation_object_init(struct reservation_object *obj)
{
ww_mutex_init(&obj->lock, &reservation_ww_class);
+
+ obj->fence_shared_count = obj->fence_shared_max = 0;
+ obj->fence_shared = NULL;
+ obj->fence_excl = NULL;
}
static inline void
reservation_object_fini(struct reservation_object *obj)
{
+ int i;
+
+ if (obj->fence_excl)
+ fence_put(obj->fence_excl);
+ for (i = 0; i < obj->fence_shared_count; ++i)
+ fence_put(obj->fence_shared[i]);
+ kfree(obj->fence_shared);
+
ww_mutex_destroy(&obj->lock);
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists