lockdep: Add an in_workqueue_context() lockdep-based test function
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Thu, 13 May 2010 19:32:28 +0000 (12:32 -0700)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Mon, 14 Jun 2010 23:37:26 +0000 (16:37 -0700)
commita25909a4d4a29e272f953e12595bf2f04a292dbd
tree86b54bc29aa126eff797b98728133ea960f8bd01
parent71d1d5c722db9ae3b3f9c08ef7ddcd7759fbb1e0
lockdep: Add an in_workqueue_context() lockdep-based test function

Some recent uses of RCU make use of workqueues.  In these uses, execution
within the context of a specific workqueue takes the place of the usual
RCU read-side primitives such as rcu_read_lock(), and flushing of workqueues
takes the place of the usual RCU grace-period primitives.  Checking for
correct use of rcu_dereference() in such cases requires a test of whether
the code is executing in the context of a particular workqueue.  This
commit adds an in_workqueue_context() function that provides this test.
This new function is only defined when lockdep is enabled, which allows
it to be used as the second argument of rcu_dereference_check().

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/workqueue.h
kernel/workqueue.c