linux_dsm_epyc7002/arch/mips/include/asm
Ralf Baechle cf5b2d23a7 MIPS: oprofile: Fix BUG due to smp_processor_id() in preemptible code.
current_cpu_type() is not preemption-safe.
If CONFIG_PREEMPT is enabled then mipsxx_reg_setup() can be called from preemptible state.
Added get_cpu()/put_cpu() pair to make it preemption-safe.

This was found while testing oprofile with CONFIG_DEBUG_PREEMPT enable.

/usr/zntestsuite # opcontrol --init
/usr/zntestsuite # opcontrol --setup --event=L2_CACHE_ACCESSES:500 --event=L2_CACHE_MISSES:500 --no-vmlinux
/usr/zntestsuite # opcontrol --start
Using 2.6+ OProfile kernel interface.
BUG: using smp_processor_id() in preemptible [00000000] code: oprofiled/1362
caller is mipsxx_reg_setup+0x11c/0x164
CPU: 0 PID: 1362 Comm: oprofiled Not tainted 3.10.4 #18
Stack : 00000006 70757465 00000000 00000000 00000000 00000000 80b173f6 00000037
          80b10000 00000000 80b21614 88f5a220 00000000 00000000 00000000 00000000
          00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
          00000000 00000000 00000000 89c49c00 89c49c2c 80721254 807b7927 8012c1d0
          80b10000 80721254 00000000 00000552 88f5a220 80b1335c 807b78e6 89c49ba8
          ...
Call Trace:
[<801099a4>] show_stack+0x64/0x7c
[<80665520>] dump_stack+0x20/0x2c
[<803a2250>] debug_smp_processor_id+0xe0/0xf0
[<8052df24>] mipsxx_reg_setup+0x11c/0x164
[<8052cd70>] op_mips_setup+0x24/0x4c
[<80529cfc>] oprofile_setup+0x5c/0x12c
[<8052b9f8>] event_buffer_open+0x78/0xf8
[<801c3150>] do_dentry_open.isra.15+0x2b8/0x3b0
[<801c3270>] finish_open+0x28/0x4c
[<801d49b8>] do_last.isra.41+0x2cc/0xd00
[<801d54a0>] path_openat+0xb4/0x4c4
[<801d5c44>] do_filp_open+0x3c/0xac
[<801c4744>] do_sys_open+0x110/0x1f4
[<8010f47c>] stack_done+0x20/0x44

Bug reported and original patch by Jerin Jacob <jerinjacobk@gmail.com>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Jerin Jacob <jerinjacobk@gmail.com>
2013-08-05 13:34:22 +02:00
..
dec MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
emma MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fw MIPS: sibyte: Declare the cfe_write() buffer as constant 2013-06-21 18:07:02 +02:00
ip32 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
lasat MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-ar7 Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET" 2013-07-01 15:10:58 +02:00
mach-ath79 Merge branch 'mips-next-3.9' of git://git.linux-mips.org/pub/scm/john/linux-john into mips-for-linux-next 2013-02-21 12:51:33 +01:00
mach-au1x00 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-bcm47xx MIPS: BCM47XX: add bcm47xx prefix in front of nvram function names 2013-02-15 19:01:57 +01:00
mach-bcm63xx Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-07-13 14:52:21 -07:00
mach-cavium-octeon Merge branch '3.10-fixes' into mips-for-linux-next 2013-07-12 18:11:43 +02:00
mach-cobalt MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-db1x00 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-dec MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mach-emma2rh MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-generic MIPS: Fix multiple definitions of UNCAC_BASE. 2013-07-30 18:40:40 +02:00
mach-ip22 MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mach-ip27 MIPS: IP27: Fix build error with CONFIG_MAPPED_KERNEL 2013-06-21 18:07:00 +02:00
mach-ip28 Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET" 2013-07-01 15:10:58 +02:00
mach-ip32 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-jazz MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-jz4740 MIPS: jz4740: Remove custom DMA API 2013-07-05 11:40:52 +05:30
mach-lantiq Merge branch 'mips-next-3.9' of git://git.linux-mips.org/pub/scm/john/linux-john into mips-for-linux-next 2013-02-21 12:51:33 +01:00
mach-lasat MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-loongson MIPS: Build uasm-generated code only once to avoid CPU Hotplug problem 2013-05-08 01:19:06 +02:00
mach-loongson1 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-malta MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-netlogic Merge branch 'mips-next' of http://dev.phrozen.org/githttp/mips-next into mips-for-linux-next 2012-12-13 19:40:13 +01:00
mach-pmcs-msp71xx MIPS: MSP71xx: Remove gpio drivers 2013-06-18 00:31:31 +02:00
mach-pnx833x MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-powertv MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-ralink MIPS: ralink: add memory definition for MT7620 2013-05-08 01:19:12 +02:00
mach-rc32434 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-rm MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mach-sead3 MIPS: microMIPS: Disable LL/SC and fix linker bug. 2013-05-09 17:55:19 +02:00
mach-sibyte MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mach-tx39xx MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mach-tx49xx MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mach-vr41xx MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
mips-boards MIPS: malta: Remove software reset defines from generic header. 2013-06-21 18:07:01 +02:00
netlogic MIPS: Netlogic: Fix sign extension in PIC write 2013-06-13 17:46:42 +02:00
octeon MIPS: Octeon: Enable interfaces on EdgeRouter Lite 2013-07-01 15:10:56 +02:00
pci MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgi MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sibyte MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sn MIPS: IP27: Remove pfn_t. 2013-05-08 03:51:58 +02:00
txx9 MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
vr41xx MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
xtalk MIPS: IP27: Fix build errors with CONFIG_PCI disabled. 2013-06-21 18:07:00 +02:00
abi.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
addrspace.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
amon.h
arch_hweight.h MIPS: Create and use asm/arch_hweight.h 2010-08-05 13:26:02 +01:00
asm-offsets.h
asm.h MIPS: microMIPS: Optimise 'memset' core library function. 2013-05-09 17:55:19 +02:00
asmmacro-32.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro-64.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro.h
atomic.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
barrier.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
bcache.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
bitops.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
bmips.h MIPS: BMIPS: Introduce bmips.h 2011-12-07 22:03:18 +00:00
bootinfo.h MIPS: add detect_memory_region() 2013-05-08 01:19:11 +02:00
branch.h MIPS: MIPS16e: Support handling of delay slots. 2013-05-09 17:55:20 +02:00
break.h MIPS: Quit exporting kernel internel break codes to uapi/asm/break.h 2013-02-20 18:24:24 +01:00
bug.h
bugs.h
cache.h MIPS: Rename .data..mostly and properly handle it in linker script 2011-05-10 18:15:24 +01:00
cacheflush.h MIPS: cache: Provide cache flush operations for XFS 2011-10-20 15:00:18 +01:00
cacheops.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
cevt-r4k.h MIPS: MSP: Fix build error 2011-05-10 18:15:24 +01:00
checksum.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
clkdev.h MIPS: add clkdev.h 2012-05-15 17:49:20 +02:00
clock.h MIPS: clock.h: Remove declaration of cpu_wait. 2013-05-22 01:34:25 +02:00
cmp.h
cmpxchg.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
compat-signal.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
compat.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
compiler.h
cop2.h MIPS: Netlogic: COP2 save/restore code 2013-06-13 17:46:41 +02:00
cpu-features.h MIPS: oprofile: Fix BUG due to smp_processor_id() in preemptible code. 2013-08-05 13:34:22 +02:00
cpu-info.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
cpu.h MIPS: Get rid of MIPS I flag and test macros. 2013-07-01 15:10:56 +02:00
cputime.h
current.h MIPS: Use generic current.h 2010-02-27 12:53:27 +01:00
debug.h
delay.h MIPS: Make __{,n,u}delay declarations match definitions and generic delay.h 2012-10-16 22:20:03 +02:00
device.h MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
div64.h
dma-coherence.h MIPS: Add option to disable software I/O coherency. 2013-05-01 16:32:49 -05:00
dma-mapping.h MIPS: Add option to disable software I/O coherency. 2013-05-01 16:32:49 -05:00
dma.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ds1287.h
dsp.h MIPS: DSP: Fix DSP mask for registers. 2013-01-24 13:20:09 +01:00
edac.h
elf.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
emergency-restart.h
errno.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
exec.h Disintegrate asm/system.h for MIPS 2012-03-28 18:30:02 +01:00
fb.h
fixmap.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
floppy.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fpregdef.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
fpu_emulator.h MIPS: microMIPS: Floating point support. 2013-05-09 17:55:18 +02:00
fpu.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
ftrace.h MIPS: Loongson: Change the Email address of Wu Zhangjin 2010-02-27 12:53:12 +01:00
futex.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
gcmpregs.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
gic.h MIPS: Fix typos and cleanup comment 2013-07-01 15:10:57 +02:00
gio_device.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
gpio.h
gt64120.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
hardirq.h
hazards.h MIPS: Get rid of the use of .macro in C code. 2013-04-11 15:39:51 +02:00
highmem.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
hugetlb.h mm/hugetlb: add more arch-defined huge_pte functions 2013-04-29 15:54:33 -07:00
hw_irq.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
i8259.h MIPS: i8259: Convert IRQ controller lock to raw spinlock. 2010-02-27 12:53:38 +01:00
ide.h
idle.h MIPS: Idle: Break r4k_wait into two functions and fix it. 2013-05-22 01:34:28 +02:00
inst.h MIPS: MIPS16e: Support handling of delay slots. 2013-05-09 17:55:20 +02:00
io.h MIPS: define write{b,w,l,q}_relaxed 2013-07-01 15:10:59 +02:00
irq_cpu.h MIPS: add irqdomain support for the CPU IRQ controller 2013-02-17 01:25:34 +01:00
irq_gt641xx.h
irq_regs.h
irq.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
irqflags.h MIPS: Get rid of the use of .macro in C code. 2013-04-11 15:39:51 +02:00
isadep.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
jazz.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
jazzdma.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild tracing,x86: Add a TSC trace_clock 2012-11-13 15:48:27 -05:00
kdebug.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kexec.h MIPS: kdump: Add support 2012-12-13 16:46:47 +01:00
kgdb.h kgdb,mips: Individual register get/set for mips 2010-08-05 09:22:21 -05:00
kmap_types.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
kprobes.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
kvm_host.h mips/kvm: Fix ABI by moving manipulation of CP0 registers to KVM_{G,S}ET_ONE_REG 2013-06-03 10:58:54 +03:00
linkage.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
m48t37.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mc146818-time.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mc146818rtc.h
mips_machine.h MIPS: move mips_{set,get}_machine_name() to a more generic place 2013-05-08 01:19:07 +02:00
mips_mt.h
mipsmtregs.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mipsprom.h MIPS: SNI: Fix conflicting wrapper symbols for headers. 2011-10-20 15:00:18 +01:00
mipsregs.h MIPS: microMIPS: Fix improper definition of ISA exception bit. 2013-07-01 15:10:58 +02:00
mmu_context.h Merge branch '3.10-fixes' into mips-for-linux-next 2013-07-12 18:11:43 +02:00
mmu.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmzone.h
module.h MIPS: PMC-Sierra Yosemite: Remove support. 2012-12-13 18:15:30 +01:00
msc01_ic.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
mutex.h
nile4.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
paccess.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
page.h Revert "MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET" 2013-07-01 15:10:58 +02:00
parport.h MIPS: Use generic parport.h 2010-02-27 12:53:27 +01:00
pci.h MIPS: remove alloc_pci_controller prototype 2013-07-01 15:10:52 +02:00
percpu.h
perf_event.h MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
pgalloc.h MIPS: Two-level pagetables for 64-bit kernels with 64KB pages. 2010-02-27 12:53:03 +01:00
pgtable-32.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pgtable-64.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pgtable-bits.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
pgtable.h consolidate io_remap_pfn_range definitions 2013-06-29 12:46:35 +04:00
pmon.h
prefetch.h
processor.h MIPS: Cleanup indentation and whitespace 2013-07-01 15:10:57 +02:00
prom.h MIPS: move mips_{set,get}_machine_name() to a more generic place 2013-05-08 01:19:07 +02:00
ptrace.h MIPS: Quit exposing Kconfig symbols in uapi headers. 2013-05-23 10:19:04 +02:00
r4k-timer.h MIPS: Synchronize MIPS count one CPU at a time 2012-08-17 10:57:28 +02:00
r4kcache.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
reboot.h
reg.h
regdef.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
rm9k-ocd.h
rtlx.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sections.h
segment.h
serial.h MIPS: Use generic serial.h 2010-02-27 12:53:27 +01:00
setup.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sgialib.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sgiarcs.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
shmparam.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sigcontext.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
siginfo.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
signal.h Fix breakage in MIPS siginfo handling 2013-03-19 19:15:52 +01:00
sim.h mips: switch to generic sys_fork() and sys_clone() 2013-02-03 18:33:02 -05:00
smp-ops.h MIPS: ARC: Fix build of firmware library on uniprocessor. 2011-07-20 23:12:11 +01:00
smp.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
smtc_ipi.h
smtc_proc.h
smtc.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
sni.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
socket.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
sparsemem.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
spinlock_types.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
spinlock.h MIPS: Remove redundant instructions from arch_spin_{,try}lock. 2013-04-26 17:18:24 +02:00
spram.h
stackframe.h MIPS: Don't save/restore OCTEON wide multiplier state on syscalls. 2013-07-01 15:10:56 +02:00
stackprotector.h MIPS: initial stack protector support 2013-07-01 15:10:48 +02:00
stacktrace.h MIPS: Add new unwind_stack variant 2011-06-15 14:35:33 +02:00
string.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
suspend.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
switch_to.h MIPS: Move cop2 save/restore to switch_to() 2013-06-13 17:46:41 +02:00
termios.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
thread_info.h MIPS: Implement HAVE_CONTEXT_TRACKING. 2013-06-10 18:02:30 +02:00
time.h MIPS: Add new GIC clockevent driver. 2013-05-09 17:55:21 +02:00
timex.h
tlb.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
tlbdebug.h
tlbflush.h
tlbmisc.h MIPS: Fix Jazz 64-bit build error. 2011-12-07 22:01:45 +00:00
topology.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
traps.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
txx9irq.h
txx9pio.h
txx9tmr.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
types.h UAPI: (Scripted) Disintegrate arch/mips/include/asm 2012-10-09 09:47:14 +01:00
uaccess.h Merge branch 'mti-next' of git://git.linux-mips.org/pub/scm/sjhill/linux-sjhill into mips-for-linux-next 2013-05-09 17:57:30 +02:00
uasm.h MIPS: Delete __cpuinit/__CPUINIT usage from MIPS code 2013-07-14 19:36:51 -04:00
ucontext.h MIPS: Use generic ucontext.h 2010-02-27 12:53:27 +01:00
unaligned.h
unistd.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
user.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
vdso.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
vga.h
vpe.h
war.h MIPS: Whitespace cleanup. 2013-02-01 10:00:22 +01:00
watch.h
wbflush.h
xor.h