lkml.org 
[lkml]   [2019]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6/9] workqueue: Convert for_each_wq to use built-in list check (v2)
    Date
    list_for_each_entry_rcu now has support to check for RCU reader sections
    as well as lock. Just use the support in it, instead of explictly
    checking in the caller.

    Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
    ---
    kernel/workqueue.c | 10 ++--------
    1 file changed, 2 insertions(+), 8 deletions(-)

    diff --git a/kernel/workqueue.c b/kernel/workqueue.c
    index 601d61150b65..e882477ebf6e 100644
    --- a/kernel/workqueue.c
    +++ b/kernel/workqueue.c
    @@ -364,11 +364,6 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
    !lockdep_is_held(&wq_pool_mutex), \
    "RCU or wq_pool_mutex should be held")

    -#define assert_rcu_or_wq_mutex(wq) \
    - RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
    - !lockdep_is_held(&wq->mutex), \
    - "RCU or wq->mutex should be held")
    -
    #define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \
    RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
    !lockdep_is_held(&wq->mutex) && \
    @@ -425,9 +420,8 @@ static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
    * ignored.
    */
    #define for_each_pwq(pwq, wq) \
    - list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node) \
    - if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
    - else
    + list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node, \
    + lock_is_held(&(wq->mutex).dep_map))

    #ifdef CONFIG_DEBUG_OBJECTS_WORK

    --
    2.22.0.510.g264f2c817a-goog
    \
     
     \ /
      Last update: 2019-07-15 17:45    [W:4.078 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site