linux_dsm_epyc7002/arch/xtensa/kernel
Max Filippov 4fe8713b87 xtensa: SMP: fix ccount_timer_shutdown
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>
2019-01-24 16:01:07 -08:00
..
syscalls xtensa: add system call table generation support 2018-12-02 23:45:22 -08:00
.gitignore xtensa: tell git to ignore generated files 2013-06-05 10:14:19 -07:00
align.S xtensa: clean up word alignment macros in assembly code 2017-12-10 14:48:53 -08:00
asm-offsets.c xtensa: drop unused field from the struct exc_table 2018-12-03 01:39:22 -08:00
coprocessor.S xtensa: simplify coprocessor.S 2018-12-04 14:08:23 -08:00
entry.S xtensa: call do_syscall_trace_{enter,leave} selectively 2018-12-17 13:48:21 -08:00
head.S xtensa: don't use l32r opcode directly 2018-12-05 12:53:07 -08:00
hw_breakpoint.c xtensa: clean up WSR*/RSR*/get_sr/set_sr 2018-12-04 14:08:11 -08:00
irq.c xtensa: drop variant IRQ support 2018-08-20 12:28:05 -07:00
jump_label.c jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
Makefile xtensa: implement jump_label support 2018-12-20 14:44:38 -08:00
mcount.S xtensa: add static function tracer support 2013-07-08 01:18:57 -07:00
module.c xtensa: clean up custom-controlled debug output 2017-12-16 22:37:08 -08:00
mxhead.S xtensa: drop unused sections and remapped reset handlers 2015-11-03 17:19:39 +03:00
pci-dma.c dma-mapping: zero memory returned from dma_alloc_* 2018-12-20 08:13:52 +01:00
pci.c mm: remove include/linux/bootmem.h 2018-10-31 08:54:16 -07:00
perf_event.c cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
platform.c xtensa: cleanup ccount frequency tracking 2013-07-08 01:11:37 -07:00
process.c xtensa: enable CORE_DUMP_USE_REGSET 2018-12-17 13:48:22 -08:00
ptrace.c xtensa: implement syscall tracepoints 2018-12-17 13:50:25 -08:00
s32c1i_selftest.c xtensa: move S32C1I self-test to a separate file 2016-11-16 15:08:28 -08:00
setup.c xtensa: clean up WSR*/RSR*/get_sr/set_sr 2018-12-04 14:08:11 -08:00
signal.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
smp.c sched/headers: Move task->mm handling methods to <linux/sched/mm.h> 2017-03-03 01:43:28 +01:00
stacktrace.c Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
syscall.c xtensa: implement syscall tracepoints 2018-12-17 13:50:25 -08:00
time.c xtensa: SMP: fix ccount_timer_shutdown 2019-01-24 16:01:07 -08:00
traps.c xtensa: clean up WSR*/RSR*/get_sr/set_sr 2018-12-04 14:08:11 -08:00
vectors.S xtensa: use call instead of callx in assembly code 2017-12-10 14:48:52 -08:00
vmlinux.lds.S Xtensa fixes and cleanups for v4.20: 2018-11-01 14:32:43 -07:00
xtensa_ksyms.c xtensa: use generic strncpy_from_user with KASAN 2017-12-17 15:34:57 -08:00