Paul E. McKenney
12d3389b7a
rcu: Tighten rcu_advance_cbs_nowake() checks
...
commit 614ddad17f22a22e035e2ea37a04815f50362017 upstream.
Currently, rcu_advance_cbs_nowake() checks that a grace period is in
progress, however, that grace period could end just after the check.
This commit rechecks that a grace period is still in progress while
holding the rcu_node structure's lock. The grace period cannot end while
the current CPU's rcu_node structure's ->lock is held, thus avoiding
false positives from the WARN_ON_ONCE().
As Daniel Vacek noted, it is not necessary for the rcu_node structure
to have a CPU that has not yet passed through its quiescent state.
Tested-by: Guillaume Morin <guillaume@morinfr.org >
Signed-off-by: Paul E. McKenney <paulmck@kernel.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2022-01-29 10:26:11 +01:00
..
2022-01-27 10:54:00 +01:00
2021-11-18 14:04:13 +01:00
2021-03-04 11:38:46 +01:00
2022-01-27 10:53:44 +01:00
2021-10-06 15:55:49 +02:00
2022-01-20 09:17:50 +01:00
2021-04-14 08:41:58 +02:00
2021-09-15 09:50:29 +02:00
2021-05-26 12:06:54 +02:00
2020-10-16 11:11:19 -07:00
2021-11-18 14:04:02 +01:00
2021-12-01 09:19:06 +01:00
2021-11-12 14:58:33 +01:00
2022-01-29 10:26:11 +01:00
2022-01-27 10:54:25 +01:00
2022-01-27 10:54:06 +01:00
2022-01-27 10:54:25 +01:00
2021-05-11 14:47:37 +02:00
2020-10-16 11:11:19 -07:00
2020-07-16 12:35:15 -07:00
2020-12-30 11:54:18 +01:00
2021-09-03 10:09:31 +02:00
2020-12-30 11:54:18 +01:00
2022-01-27 10:54:16 +01:00
2020-08-17 20:26:58 -04:00
2020-08-23 17:36:59 -05:00
2021-10-27 09:56:52 +02:00
2020-07-30 11:15:58 -07:00
2020-10-13 09:17:34 -07:00
2020-08-23 17:36:59 -05:00
2021-09-15 09:50:40 +02:00
2021-12-01 09:19:08 +01:00
2021-06-23 14:42:52 +02:00
2021-09-08 08:49:00 +02:00
2021-01-30 13:55:18 +01:00
2020-11-19 11:58:16 -08:00
2021-11-18 14:04:29 +01:00
2021-04-07 15:00:14 +02:00
2021-06-30 08:47:29 -04:00
2020-10-13 09:17:34 -07:00
2020-11-02 12:14:19 -08:00
2021-07-20 16:05:58 +02:00
2020-10-25 14:51:49 -07:00
2021-01-09 13:46:24 +01:00
2020-08-12 10:58:02 -07:00
2021-02-03 23:28:37 +01:00
2021-05-19 10:13:09 +02:00
2020-10-05 13:37:03 +02:00
2020-08-12 10:58:01 -07:00
2021-12-08 09:03:20 +01:00
2021-09-03 10:09:31 +02:00
2021-05-11 14:47:37 +02:00
2021-03-25 09:04:11 +01:00
2021-03-25 09:04:11 +01:00
2021-06-30 08:47:15 -04:00
2020-09-01 09:58:03 +02:00
2020-07-08 11:14:22 +02:00
2020-09-04 17:51:55 +10:00
2020-11-14 11:26:04 -08:00
2020-10-29 17:22:59 -05:00
2021-09-18 13:40:36 +02:00
2021-01-09 13:46:24 +01:00
2021-09-26 14:08:58 +02:00
2021-05-26 12:06:49 +02:00
2020-10-16 11:11:19 -07:00
2020-11-14 11:26:03 -08:00
2020-07-27 14:31:12 -04:00
2020-10-16 11:11:22 -07:00
2021-05-19 10:13:09 +02:00
2021-10-06 15:55:49 +02:00
2020-08-24 18:38:38 -07:00
2020-08-07 11:33:25 -07:00
2021-08-18 08:59:06 +02:00
2021-11-18 14:03:47 +01:00
2021-05-14 09:50:46 +02:00
2021-07-14 16:55:50 +02:00
2020-09-16 15:18:56 +02:00
2020-09-19 13:13:39 -07:00
2020-09-18 14:24:16 +01:00
2021-09-08 08:49:00 +02:00
2020-10-26 12:12:27 +01:00
2020-10-18 09:27:10 -07:00
2021-09-26 14:08:57 +02:00
2022-01-05 12:40:34 +01:00
2020-10-17 15:05:30 -06:00
2020-10-02 19:11:12 -07:00
2020-06-29 12:01:45 -07:00
2021-09-03 10:09:30 +02:00
2022-01-27 10:54:33 +01:00
2021-09-08 08:49:00 +02:00
2020-10-06 10:31:52 -07:00
2021-05-14 09:50:46 +02:00
2021-09-08 08:49:00 +02:00
2021-03-30 14:32:03 +02:00
2020-08-17 09:39:18 -07:00
2021-05-19 10:13:00 +02:00
2022-01-16 09:14:22 +01:00