• J
    lockdep: Provide dummy forward declaration of *_is_held() helpers · cd539cff
    Jakub Kicinski 提交于
    When CONFIG_LOCKDEP is not set, lock_is_held() and lockdep_is_held()
    are not declared or defined.  This forces all callers to use #ifdefs
    around these checks.
    
    Recent RCU changes added a lot of lockdep_is_held() calls inside
    rcu_dereference_protected().  This macro hides its argument on !LOCKDEP
    builds, which can lead to false-positive unused-variable warnings.
    
    This commit therefore provides forward declarations of lock_is_held()
    and lockdep_is_held() but without defining them.  This way callers
    (including those internal to RCU) can keep them visible to the compiler
    on !LOCKDEP builds and instead depend on dead code elimination to remove
    the references, which in turn prevents the linker from complaining about
    the lack of the corresponding function definitions.
    
    [ paulmck: Apply Peter Zijlstra feedback on "extern". ]
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    --
    CC: peterz@infradead.org
    CC: mingo@redhat.com
    CC: will@kernel.org
    Signed-off-by: NPaul E. McKenney <paulmck@kernel.org>
    cd539cff
lockdep.h 20.0 KB