lkml.org 
[lkml]   [2016]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.16.y-ckt 113/126] locking: Add WARN_ON_ONCE lock assertion
    Date
    3.16.7-ckt22 -stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Peter Hurley <peter@hurleysoftware.com>

    commit 9a37110d20c95d1ebf6c04881177fe8f62831db2 upstream.

    An interface may need to assert a lock invariant and not flood the
    system logs; add a lockdep helper macro equivalent to
    lockdep_assert_held() which only WARNs once.

    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
    ---
    include/linux/lockdep.h | 5 +++++
    1 file changed, 5 insertions(+)

    diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
    index 008388f920d7..64c7425afbce 100644
    --- a/include/linux/lockdep.h
    +++ b/include/linux/lockdep.h
    @@ -362,6 +362,10 @@ extern void lockdep_trace_alloc(gfp_t mask);
    WARN_ON(debug_locks && !lockdep_is_held(l)); \
    } while (0)

    +#define lockdep_assert_held_once(l) do { \
    + WARN_ON_ONCE(debug_locks && !lockdep_is_held(l)); \
    + } while (0)
    +
    #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion)

    #else /* !CONFIG_LOCKDEP */
    @@ -412,6 +416,7 @@ struct lock_class_key { };
    #define lockdep_depth(tsk) (0)

    #define lockdep_assert_held(l) do { (void)(l); } while (0)
    +#define lockdep_assert_held_once(l) do { (void)(l); } while (0)

    #define lockdep_recursing(tsk) (0)


    \
     
     \ /
      Last update: 2016-01-06 12:21    [W:4.139 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site