The wq_watchdog_timer_fn() is executed in the softirq context, this is already in the RCU read critical section, this commit therefore remove rcu_read_lock/unlock() in wq_watchdog_timer_fn().
Showing the changes to kernel/workqueue.c (1 of 1 file). Show all
Unified · Split
| @@ -7544,8 +7544,6 @@ static void wq_watchdog_timer_fn(struct timer_list *unused) · 7543 unmodified lines | ||
| 7544 | 7544 | if (!thresh) |
| 7545 | 7545 | return; |
| 7546 | 7546 | |
| 7547 | − rcu_read_lock(); | |
| 7548 | − | |
| 7549 | 7547 | for_each_pool(pool, pi) { |
| 7550 | 7548 | unsigned long pool_ts, touched, ts; |
| 7551 | 7549 | |
| @@ -7587,8 +7585,6 @@ static void wq_watchdog_timer_fn(struct timer_list *unused) · 35 unmodified lines | ||
| 7587 | 7585 | |
| 7588 | 7586 | } |
| 7589 | 7587 | |
| 7590 | − rcu_read_unlock(); | |
| 7591 | − | |
| 7592 | 7588 | if (lockup_detected) |
| 7593 | 7589 | show_all_workqueues(); |
| 7594 | 7590 | |