[PATCH net-next 0/7] rcu: prevent RCU_LOCKDEP_WARN() from swallowing the condition

Jakub Kicinski
2020-09-16T18:46:27Z

Hi!

So I unfolded the RFC patch into smaller chunks and fixed an issue
in SRCU pointed out by build bot. Build bot has been quiet for
a day but I'm not 100% sure it's scanning my tree, so let's
give these patches some ML exposure.

The motivation here is that we run into a unused variable
warning in networking code because RCU_LOCKDEP_WARN() makes
its argument disappear with !LOCKDEP / !PROVE_RCU. We marked
the variable as __maybe_unused, but that's ugly IMHO.

This set makes the relevant function declarations visible to
the compiler and uses (0 && (condition)) to make the compiler
remove those calls before linker realizes they are never defined.

I'm tentatively marking these for net-next, but if anyone (Paul?)
wants to take them into their tree - even better.

Jakub Kicinski (7):
sched: un-hide lockdep_tasklist_lock_is_held() for !LOCKDEP
rcu: un-hide lockdep maps for !LOCKDEP
net: un-hide lockdep_sock_is_held() for !LOCKDEP
net: sched: remove broken definitions and un-hide for !LOCKDEP
srcu: use a more appropriate lockdep helper
lockdep: provide dummy forward declaration of *_is_held() helpers
rcu: prevent RCU_LOCKDEP_WARN() from swallowing the condition

include/linux/lockdep.h | 6 ++++++
include/linux/rcupdate.h | 11 ++++++-----
include/linux/rcupdate_trace.h | 4 ++--
include/linux/sched/task.h | 2 --
include/net/sch_generic.h | 12 ------------
include/net/sock.h | 2 --
kernel/rcu/srcutree.c | 2 +-
7 files changed, 15 insertions(+), 24 deletions(-)

--
2.26.2