kernel-hacking-2024-linux-s.../arch/arm/mach-imx
Ulf Hansson 1a67b9263e ARM: imx6q: Fixup RCU usage for cpuidle
The commit eb1f00237a ("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>
2020-09-30 17:42:43 +02:00
..
devices Merge remote-tracking branch 'spi/for-5.9' into spi-next 2020-07-29 14:52:00 +01:00
3ds_debugboard.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
3ds_debugboard.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
anatop.c ARM: imx: Remove unnecessary blank lines 2020-03-11 15:17:02 +08:00
avic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
board-mx31lilly.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
board-mx31lite.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
board-mx31moboard.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
common.h ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
cpu-imx5.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
cpu-imx25.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpu-imx27.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
cpu-imx31.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpu-imx35.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpu.c soc: imx: move cpu code to drivers/soc/imx 2020-05-20 23:03:50 +08:00
cpuidle-imx5.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-imx6q.c ARM: imx6q: Fixup RCU usage for cpuidle 2020-09-30 17:42:43 +02:00
cpuidle-imx6sl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-imx6sx.c SPDX update for 5.2-rc6 2019-06-21 09:58:42 -07:00
cpuidle-imx7ulp.c ARM: imx: add i.MX7ULP cpuidle support 2019-01-15 23:03:40 +08:00
cpuidle.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
crmregs-imx3.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
devices-imx21.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
devices-imx27.h spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
devices-imx31.h spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
devices-imx35.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ehci-imx27.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
ehci-imx31.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
ehci-imx35.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
ehci.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
gpc.c ARM: imx: Remove unnecessary blank lines 2020-03-11 15:17:02 +08:00
hardware.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
headsmp.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
hotplug.c ARM: imx: use generic function to exit coherency 2019-11-04 08:25:56 +08:00
iim.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
imx27-dt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
imx31-dt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
imx35-dt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
iomux-imx31.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-mx2x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-mx3.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-mx21.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-mx27.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-mx35.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-v1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 102 2019-05-24 17:39:00 +02:00
iomux-v1.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-v3.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
iomux-v3.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
irq-common.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
irq-common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
Kconfig ARM: imx: limit errata selection to Cortex-A9 based designs 2020-02-14 11:37:57 +08:00
mach-armadillo5x0.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
mach-bug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-imx1.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mach-imx6q.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx6sl.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx6sx.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx6ul.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx7d-cm4.c ARM: imx: Provide support for NXP i.MX7D Cortex-M4 2018-07-03 15:17:57 +08:00
mach-imx7d.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx7ulp.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-imx25.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
mach-imx27_visstrim_m10.c media: mach-imx: mach-imx27_visstrim_m10.c: remove soc_camera dependencies 2020-07-04 12:18:27 +02:00
mach-imx50.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
mach-imx51.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
mach-imx53.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
mach-kzm_arm11_01.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-ls1021a.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
mach-mx21ads.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-mx27_3ds.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-mx27ads.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-mx31_3ds.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-mx31ads.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-mx31lilly.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-mx31lite.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-mx31moboard.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-mx35_3ds.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-pca100.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-pcm037.c ARM: imx: pcm037: make pcm970_sja1000_platform_data static 2020-05-20 09:38:37 +08:00
mach-pcm037_eet.c spi: imx/fsl-lpspi: Convert to GPIO descriptors 2020-07-13 18:27:06 +01:00
mach-pcm043.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-qong.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mach-vf610.c ARM: imx: use device_initcall for imx_soc_device_init 2020-05-20 23:03:42 +08:00
mach-vpr200.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
Makefile ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y 2020-04-17 16:29:59 +02:00
Makefile.boot
mm-imx3.c mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
mm-imx21.c ARM: imx: Remove imx_add_imx_dma() unused irq_err argument 2020-07-13 11:26:50 +08:00
mm-imx27.c ARM: imx: Remove imx_add_imx_dma() unused irq_err argument 2020-07-13 11:26:50 +08:00
mmdc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
mx2x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
mx3x.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mx21.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
mx27.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
mx31.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mx31lilly-db.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mx31lite-db.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mx31moboard-devboard.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mx31moboard-marxbot.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mx31moboard-smartbot.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
mx35.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mxc.h ARM: imx: move cpu definitions into a header 2020-05-20 23:03:47 +08:00
pcm037.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
platsmp.c ARM: imx: Add missing of_node_put() 2020-02-18 17:46:08 +08:00
pm-imx5.c ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram() 2020-06-24 09:24:34 +08:00
pm-imx6.c ARM: imx6: add missing put_device() call in imx6q_suspend_init() 2020-06-24 09:25:39 +08:00
pm-imx7ulp.c ARM: imx: Add missing of_node_put() 2020-02-18 17:46:08 +08:00
pm-imx25.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pm-imx27.c
resume-imx6.S ARM: imx: build v7_cpu_resume() unconditionally 2020-02-13 21:21:44 +08:00
src.c ARM: imx: Drop unnecessary src_base check 2020-03-11 15:18:17 +08:00
ssi-fiq-ksym.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ssi-fiq.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
suspend-imx6.S ARM: imx: build v7_cpu_resume() unconditionally 2020-02-13 21:21:44 +08:00
suspend-imx53.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
system.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
tzic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 2019-05-30 11:26:37 -07:00
ulpi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00