Frederic Weisbecker afd4e69647 rcu/nocb: Re-arrange call_rcu() NOCB specific code
Currently the call_rcu() function interleaves NOCB and !NOCB enqueue
code in a complicated way such that:

* The bypass enqueue code may or may not have enqueued and may or may
  not have locked the ->nocb_lock. Everything that follows is in a
  Schrödinger locking state for the unwary reviewer's eyes.

* The was_alldone is always set but only used in NOCB related code.

* The NOCB wake up is distantly related to the locking hopefully
  performed by the bypass enqueue code that did not enqueue on the
  bypass list.

Unconfuse the whole and gather NOCB and !NOCB specific enqueue code to
their own functions.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
2024-02-14 07:50:45 -08:00
..
2024-01-18 09:48:40 -08:00
2024-01-18 16:49:34 -08:00
2024-01-12 16:35:58 -08:00
2024-01-10 18:00:18 -08:00
2023-11-03 15:44:25 -10:00
2024-01-10 16:43:55 -08:00
2022-09-26 10:13:13 -07:00
2024-01-09 10:36:07 -08:00
2024-01-10 16:43:55 -08:00
2023-12-23 15:52:13 +01:00
2023-03-24 11:01:29 +01:00
2023-10-19 11:02:48 +02:00
2023-10-09 16:59:47 +10:00
2023-12-01 09:51:44 -08:00
2023-12-12 14:24:14 +01:00
2024-01-09 16:20:17 -08:00
2023-12-12 14:24:14 +01:00
2023-10-30 17:56:53 -10:00
2023-10-04 10:41:57 -07:00
2023-12-29 12:22:29 -08:00
2024-01-09 12:57:46 -08:00
2023-11-01 15:28:33 -10:00
2023-08-15 15:26:17 -07:00
2023-10-11 08:46:01 -07:00