RCU fixes for v6.7

* Fix a lock inversion between scheduler and RCU introduced
  in v6.2-rc4. The scenario could trigger on any user of RCU_NOCB
  (mostly Android and also nohz_full).

* Fix PF_IDLE semantic changes introduced in v6.6-rc3 breaking some
  RCU-Tasks and RCU-Tasks-Trace expectations as to what exactly is
  an idle task. This resulted in potential spurious stalls and
  warnings.
rcu/tasks-trace: Handle new PF_IDLE semantics

The commit:

	cff9b2332ab7 ("kernel/sched: Modify initial boot task idle setup")

has changed the semantics of what is to be considered an idle task in
such a way that the idle task of an offline CPU may not carry the
PF_IDLE flag anymore.

However RCU-tasks-trace tests the opposite assertion, still assuming
that idle tasks carry the PF_IDLE flag during their whole lifecycle.

Remove this assumption to avoid spurious warnings but keep the initial
test verifying that the idle task is the current task on any offline
CPU.

Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Fixes: cff9b2332ab7 ("kernel/sched: Modify initial boot task idle setup")
Suggested-by: Joel Fernandes <joel@joelfernandes.org>
Suggested-by: Paul E . McKenney" <paulmck@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
1 file changed