android_kernel_oneplus_msm8998/arch
Max Filippov f6efc18bbf xtensa: SMP: fix ccount_timer_shutdown
[ Upstream commit 4fe8713b873fc881284722ce4ac47995de7cf62c ]

ccount_timer_shutdown is called from the atomic context in the
secondary_start_kernel, resulting in the following BUG:

BUG: sleeping function called from invalid context
in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1
Preemption disabled at:
  secondary_start_kernel+0xa1/0x130
Call Trace:
  ___might_sleep+0xe7/0xfc
  __might_sleep+0x41/0x44
  synchronize_irq+0x24/0x64
  disable_irq+0x11/0x14
  ccount_timer_shutdown+0x12/0x20
  clockevents_switch_state+0x82/0xb4
  clockevents_exchange_device+0x54/0x60
  tick_check_new_device+0x46/0x70
  clockevents_register_device+0x8c/0xc8
  clockevents_config_and_register+0x1d/0x2c
  local_timer_setup+0x75/0x7c
  secondary_start_kernel+0xb4/0x130
  should_never_return+0x32/0x35

Use disable_irq_nosync instead of disable_irq to avoid it.
This is safe because the ccount timer IRQ is per-CPU, and once IRQ is
masked the ISR will not be called.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-03-23 08:44:24 +01:00
..
alpha alpha: Fix Eiger NR_IRQS to 128 2019-02-20 10:13:22 +01:00
arc ARC: fix __ffs return value to avoid build warnings 2019-03-23 08:44:19 +01:00
arm KVM: arm/arm64: Fix MMIO emulation data handling 2019-03-23 08:44:20 +01:00
arm64 arm64: ftrace: don't adjust the LR value 2019-02-20 10:13:07 +01:00
avr32
blackfin
c6x
cris mm: replace get_user_pages() write/force parameters with gup_flags 2018-12-17 21:55:16 +01:00
frv
h8300
hexagon
ia64 mm: replace get_user_pages() write/force parameters with gup_flags 2018-12-17 21:55:16 +01:00
m32r
m68k
metag metag/uaccess: Check access_ok in strncpy_from_user 2017-05-25 14:30:16 +02:00
microblaze
mips MIPS: irq: Allocate accurate order pages for irq stack 2019-03-23 08:44:23 +01:00
mn10300
nios2
openrisc
parisc
powerpc powerpc: Always initialize input array when calling epapr_hypercall() 2019-03-23 08:44:21 +01:00
s390 s390/smp: Fix calling smp_call_ipl_cpu() from ipl CPU 2019-02-06 19:43:05 +01:00
score
sh mm: replace get_user_pages_unlocked() write/force parameters with gup_flags 2018-12-17 21:55:16 +01:00
sparc mm: replace get_user_pages_unlocked() write/force parameters with gup_flags 2018-12-17 21:55:16 +01:00
tile
um um: Avoid marking pages with "changed protection" 2019-02-20 10:13:13 +01:00
unicore32
x86 x86/CPU/AMD: Set the CPB bit unconditionally on F17h 2019-03-23 08:44:23 +01:00
xtensa xtensa: SMP: fix ccount_timer_shutdown 2019-03-23 08:44:24 +01:00
.gitignore
Kconfig