ARM: imx6q: Fixup RCU usage for cpuidle
authorUlf Hansson <ulf.hansson@linaro.org>
Wed, 30 Sep 2020 11:20:23 +0000 (13:20 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 30 Sep 2020 15:42:43 +0000 (17:42 +0200)
commit1a67b9263e06688d7f683714cace8dcc203f8c55
treea2ac2f4290092af09c08cc0c36bd22a339c506ea
parenteac53b3e304a8354dc2a2f38e60e712d0e110ef6
ARM: imx6q: Fixup RCU usage for cpuidle

The commit eb1f00237aca ("lockdep,trace: Expose tracepoints"), started to
expose us for tracepoints. For imx6q cpuidle, this leads to an RCU splat
according to below.

[6.870684] [<c0db7690>] (_raw_spin_lock) from [<c011f6a4>] (imx6q_enter_wait+0x18/0x9c)
[6.878846] [<c011f6a4>] (imx6q_enter_wait) from [<c09abfb0>] (cpuidle_enter_state+0x168/0x5e4)

To fix the problem, let's assign the corresponding idlestate->flags the
CPUIDLE_FLAG_RCU_IDLE bit, which enables us to call rcu_idle_enter|exit()
at the proper point.

Reported-by: Dong Aisheng <aisheng.dong@nxp.com>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/arm/mach-imx/cpuidle-imx6q.c