lkml.org 
[lkml]   [2013]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 03/46] percpu_rwlock: Provide a way to define and init percpu-rwlocks at compile time
    Date
    Add the support for defining and initializing percpu-rwlocks at compile time
    for those users who would like to use percpu-rwlocks really early in the boot
    process (even before dynamic per-CPU allocations can begin).

    Cc: David Howells <dhowells@redhat.com>
    Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
    ---

    include/linux/percpu-rwlock.h | 15 +++++++++++++++
    1 file changed, 15 insertions(+)

    diff --git a/include/linux/percpu-rwlock.h b/include/linux/percpu-rwlock.h
    index 74eaf4d..5590b1e 100644
    --- a/include/linux/percpu-rwlock.h
    +++ b/include/linux/percpu-rwlock.h
    @@ -49,6 +49,21 @@ extern int __percpu_init_rwlock(struct percpu_rwlock *,

    extern void percpu_free_rwlock(struct percpu_rwlock *);

    +
    +#define __PERCPU_RWLOCK_INIT(name) \
    + { \
    + .rw_state = &name##_rw_state, \
    + .global_rwlock = __RW_LOCK_UNLOCKED(name.global_rwlock) \
    + }
    +
    +#define DEFINE_PERCPU_RWLOCK(name) \
    + static DEFINE_PER_CPU(struct rw_state, name##_rw_state); \
    + struct percpu_rwlock (name) = __PERCPU_RWLOCK_INIT(name);
    +
    +#define DEFINE_STATIC_PERCPU_RWLOCK(name) \
    + static DEFINE_PER_CPU(struct rw_state, name##_rw_state); \
    + static struct percpu_rwlock(name) = __PERCPU_RWLOCK_INIT(name);
    +
    #define percpu_init_rwlock(pcpu_rwlock) \
    ({ static struct lock_class_key rwlock_key; \
    __percpu_init_rwlock(pcpu_rwlock, #pcpu_rwlock, &rwlock_key); \


    \
     
     \ /
      Last update: 2013-02-18 14:01    [W:3.366 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site