lkml.org 
[lkml]   [2014]   [Feb]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 5/6] reservation: add support for fences to enable cross-device synchronisation
    From
    On Mon, Feb 17, 2014 at 10:58 AM, Maarten Lankhorst
    <maarten.lankhorst@canonical.com> wrote:
    > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>

    Reviewed-by: Rob Clark <robdclark@gmail.com>


    > ---
    > include/linux/reservation.h | 18 +++++++++++++++++-
    > 1 file changed, 17 insertions(+), 1 deletion(-)
    >
    > diff --git a/include/linux/reservation.h b/include/linux/reservation.h
    > index 813dae960ebd..92c4851b5a39 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@linaro.org>
    > + * Rob Clark <robdclark@gmail.com>
    > * Maarten Lankhorst <maarten.lankhorst@canonical.com>
    > * Thomas Hellstrom <thellstrom-at-vmware-dot-com>
    > *
    > @@ -40,22 +40,38 @@
    > #define _LINUX_RESERVATION_H
    >
    > #include <linux/ww_mutex.h>
    > +#include <linux/fence.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]);
    > +
    > ww_mutex_destroy(&obj->lock);
    > }
    >
    >


    \
     
     \ /
      Last update: 2014-02-17 18:21    [W:4.411 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site