linux-stable/arch/arm
Russell King f49f7007de ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
[ Upstream commit 50d6b3cf94 ]

If we have a kernel configured for periodic timer interrupts, and we
have cpuidle enabled, then we end up with CPU1 losing timer interupts
after a hotplug.

This can manifest itself in RCU stall warnings, or userspace becoming
unresponsive.

The problem is that the kernel initially wants to use the TWD timer
for interrupts, but the TWD loses context when we enter the C3 cpuidle
state.  Nothing reprograms the TWD after idle.

We have solved this in the past by switching to broadcast timer ticks,
and cpuidle44xx switches to that mode at boot time.  However, there is
nothing to switch from periodic mode local timers after a hotplug
operation.

We call tick_broadcast_enter() in omap_enter_idle_coupled(), which one
would expect would take care of the issue, but internally this only
deals with one-shot local timers - tick_broadcast_enable() on the other
hand only deals with periodic local timers.  So, we need to call both.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
[tony@atomide.com: just standardized the subject line]
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-03-23 20:09:44 +01:00
..
boot ARM: dts: Configure clock parent for pwm vibra 2019-03-23 20:09:42 +01:00
common ARM: Always build secure_cntvoff.S on ARM V7 to fix shmobile !SMP build 2018-06-23 18:26:48 -07:00
configs ARM: imx_v6_v7_defconfig: Select CONFIG_TMPFS_POSIX_ACL 2018-11-21 09:19:09 +01:00
crypto crypto: speck - remove Speck 2018-11-13 11:08:46 -08:00
firmware ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
include arm/arm64: KVM: Allow a VCPU to fully reset itself 2019-03-23 20:09:43 +01:00
kernel ARM: spectre-v2: per-CPU vtables to work around big.Little systems 2019-02-20 10:25:38 +01:00
kvm arm/arm64: KVM: Don't panic on failure to properly reset system registers 2019-03-23 20:09:43 +01:00
lib ARM: 8797/1: spectre-v1.1: harden __copy_to_user 2019-02-20 10:25:37 +01:00
mach-actions
mach-alpine
mach-artpec
mach-asm9260
mach-aspeed
mach-at91 ARM: Device-tree updates 2018-08-23 14:02:22 -07:00
mach-axxia
mach-bcm PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-berlin ARM: berlin: switch to SPDX license identifier 2018-05-24 14:49:09 +08:00
mach-clps711x
mach-cns3xxx ARM: cns3xxx: Fix writing to wrong PCI config registers after alignment 2019-02-06 17:30:11 +01:00
mach-davinci DaVinci SoC updates for v4.19 2018-07-14 14:16:26 -07:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx sound updates for 4.18 2018-06-06 09:08:38 -07:00
mach-exynos ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
mach-footbridge treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-gemini
mach-highbank
mach-hisi ARM: hisi: handle of_iomap and fix missing of_node_put 2018-07-16 17:36:50 +01:00
mach-imx ARM: imx: update the cpu power up timing setting on i.mx6sx 2019-01-13 09:50:56 +01:00
mach-integrator gpio: pl061: handle failed allocations 2019-02-20 10:25:43 +01:00
mach-iop13xx
mach-iop32x ARM: iop32x/n2100: fix PCI IRQ mapping 2019-02-15 08:10:12 +01:00
mach-iop33x
mach-ixp4xx treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-keystone ARM: keystone: fix platform_domain_notifier array overrun 2018-05-14 09:24:29 -07:00
mach-ks8695 i2c: gpio: move header to platform_data 2018-05-17 16:27:09 +02:00
mach-lpc18xx
mach-lpc32xx
mach-mediatek
mach-meson ARM: meson: merge Kconfig symbol MACH_MESON8B into MACH_MESON8 2018-05-23 10:08:13 -07:00
mach-mmp ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt 2018-12-19 19:19:51 +01:00
mach-moxart
mach-mv78xx0
mach-mvebu ARM: mvebu: convert secondary CPU clock sync to hotplug state 2018-06-27 08:40:29 +02:00
mach-mxs
mach-netx
mach-nomadik
mach-npcm
mach-nspire
mach-omap1 ARM: OMAP1: ams-delta: Fix possible use of uninitialized field 2018-12-17 09:24:30 +01:00
mach-omap2 ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug 2019-03-23 20:09:44 +01:00
mach-orion5x
mach-oxnas
mach-picoxcell
mach-prima2
mach-pxa ARM: pxa: avoid section mismatch warning 2019-02-12 19:47:09 +01:00
mach-qcom
mach-realview
mach-rockchip ARM: rockchip: Force CONFIG_PM on Rockchip systems 2018-08-24 08:50:23 -07:00
mach-rpc mm: do not initialize TLB stack vma's with vma_init() 2018-08-01 13:43:38 -07:00
mach-s3c24xx ARM: s3c24xx: Fix typo in guard macro of s3c2412.h 2018-06-25 18:39:18 +02:00
mach-s3c64xx regulator: gpio: Revert 2018-06-07 14:23:08 +01:00
mach-s5pv210
mach-sa1100 Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
mach-shmobile ARM: shmobile: Always enable ARCH_TIMER on SoCs with A7 and/or A15 2018-07-20 13:44:10 +02:00
mach-socfpga PCI: controller: Move PCI_DOMAINS selection to arch Kconfig 2018-06-26 15:37:37 -05:00
mach-spear
mach-sti
mach-stm32 ARM: stm32: Don't select DMA unconditionally on STM32MP157C 2018-05-25 15:26:38 -07:00
mach-sunxi
mach-tango ARM: tango: Improve ARCH_MULTIPLATFORM compatibility 2019-02-15 08:10:12 +01:00
mach-tegra ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
mach-u300
mach-uniphier ARM: uniphier: select RESET_CONTROLLER 2018-07-31 19:04:41 -07:00
mach-ux500
mach-versatile
mach-vexpress treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
mach-vt8500
mach-w90x900
mach-zx
mach-zynq
mm ARM: fix the cockup in the previous patch 2019-02-20 10:25:38 +01:00
net ARM: net: bpf: improve 64-bit ALU implementation 2018-07-13 15:26:42 +02:00
nwfpe
oprofile
plat-iop
plat-omap ARM/time: Remove read_boot_clock64() 2018-07-20 00:02:41 +02:00
plat-orion
plat-pxa ARM: pxa: ssp: unneeded to free devm_ allocated data 2019-03-13 14:02:34 -07:00
plat-samsung headers: fix build error in arch/arm/plat-samsung/adc.c, add <linux/mod_devicetable.h> 2018-07-08 15:19:04 +02:00
plat-versatile
probes ARM: 8834/1: Fix: kprobes: optimized kprobes illegal instruction 2019-02-27 10:08:49 +01:00
tools ARM: 8787/1: wire up io_pgetevents syscall 2018-09-19 10:44:11 +01:00
vdso arm: port KCOV to arm 2018-06-15 07:55:24 +09:00
vfp ARM: 8810/1: vfp: Fix wrong assignement to ufp_exc 2019-02-20 10:25:37 +01:00
xen xen: share start flags between PV and PVH 2018-06-19 13:51:00 +02:00
Kconfig ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Kconfig-nommu
Kconfig.debug ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
Makefile Kbuild updates for v4.19 (2nd) 2018-08-25 13:40:38 -07:00