rcu: Stop spurious warnings from synchronize_sched_expedited
authorHugh Dickins <hughd@google.com>
Fri, 17 Feb 2012 21:20:31 +0000 (13:20 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 23:33:34 +0000 (15:33 -0800)
commit1cc85961e214773cb7d7f2ccbe3bc644dd466df0
tree1ded62f9f4c72a00b5cca2396919ee4c2ec547ec
parent696a02cc16b182dd78b1f395ae336f449cc90f11
rcu: Stop spurious warnings from synchronize_sched_expedited

synchronize_sched_expedited() is spamming CONFIG_DEBUG_PREEMPT=y
users with an unintended warning from the cpu_is_offline() check: use
raw_smp_processor_id() instead of smp_processor_id() there.

Because the warning is under a get_online_cpus(), it is not possible
for any CPUs to go offline, though it is quite possible that the
task might migrate between the raw_smp_processor_id() and the check
of cpu_is_offline().  This is not a problem because the task cannot
migrate from an offline CPU to an online one or vice versa.  The point
of the check is to verify that synchronize_sched_expedited() is not
called from an offline CPU, for example, from a CPU_DYING notifier, or,
more important, from an outgoing CPU making its way from its CPU_DYING
notifiers to the idle loop.

Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcutree.c