linux_dsm_epyc7002/arch/powerpc/include/asm
Paul Gortmaker 21f585073d powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint
Currently, on 8641D, which doesn't set CONFIG_HAVE_HW_BREAKPOINT
we get the following splat:

BUG: using smp_processor_id() in preemptible [00000000] code: login/1382
caller is set_breakpoint+0x1c/0xa0
CPU: 0 PID: 1382 Comm: login Not tainted 3.15.0-rc3-00041-g2aafe1a4d451 #1
Call Trace:
[decd5d80] [c0008dc4] show_stack+0x50/0x158 (unreliable)
[decd5dc0] [c03c6fa0] dump_stack+0x7c/0xdc
[decd5de0] [c01f8818] check_preemption_disabled+0xf4/0x104
[decd5e00] [c00086b8] set_breakpoint+0x1c/0xa0
[decd5e10] [c00d4530] flush_old_exec+0x2bc/0x588
[decd5e40] [c011c468] load_elf_binary+0x2ac/0x1164
[decd5ec0] [c00d35f8] search_binary_handler+0xc4/0x1f8
[decd5ef0] [c00d4ee8] do_execve+0x3d8/0x4b8
[decd5f40] [c001185c] ret_from_syscall+0x0/0x38
 --- Exception: c01 at 0xfeee554
    LR = 0xfeee7d4

The call path in this case is:

	flush_thread
	   --> set_debug_reg_defaults
	     --> set_breakpoint
	       --> __get_cpu_var

Since preemption is enabled in the cleanup of flush thread, and
there is no need to disable it, introduce the distinction between
set_breakpoint and __set_breakpoint, leaving only the flush_thread
instance as the current user of set_breakpoint.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-05-20 10:54:06 +10:00
..
8xx_immap.h
agp.h
archrandom.h random: Add arch_has_random[_seed]() 2014-03-19 22:24:08 -04:00
asm-compat.h powerpc: Fix little endian lppaca, slb_shadow and dtl_entry 2013-08-14 15:33:35 +10:00
asm-offsets.h
async_tx.h
atomic.h
backlight.h
barrier.h arch: Introduce smp_load_acquire(), smp_store_release() 2014-01-12 10:37:17 +01:00
bitops.h powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors on power7. 2013-12-05 16:04:39 +11:00
bootx.h
btext.h powerpc/pmac: Early debug output on screen on 64-bit macs 2013-08-14 14:57:40 +10:00
bug.h
bugs.h
cache.h powerpc: purge all the prefetched instructions for the coherent icache flush 2013-12-02 14:13:47 +11:00
cacheflush.h powerpc: Remove the symbol __flush_icache_range 2013-08-14 14:56:44 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc: Use generic checksum code in little endian 2013-10-11 16:48:39 +11:00
cmpxchg.h powerpc: Add support for the optimised lockref implementation 2014-01-28 14:45:43 +11:00
code-patching.h powerpc: Add ABIv2 support to ppc_function_entry 2014-04-23 10:05:21 +10:00
compat.h powerpc/compat: 32-bit little endian machine name is ppcle, not ppc 2014-03-24 10:16:04 +11:00
context_tracking.h powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
cpm1.h
cpm2.h
cpm.h
cputable.h powerpc: Add a cpu feature CPU_FTR_PMAO_BUG 2014-03-24 09:48:24 +11:00
cputhreads.h
cputime.h
current.h
dbdma.h
dbell.h
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
delay.h
device.h powerpc: Add iommu domain pointer to device archdata 2013-08-14 11:38:34 +02:00
disassemble.h KVM: PPC: E500: exit to user space on "ehpriv 1" instruction 2013-10-17 14:49:39 +02:00
div64.h
dma-mapping.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
dma.h powerpc: remove PReP platform 2013-04-18 13:03:53 +10:00
edac.h
eeh_event.h powerpc/eeh: Allow to purge EEH events 2013-06-20 17:06:07 +10:00
eeh.h Revert "powerpc/powernv: Fundamental reset on PLX ports" 2014-05-20 10:20:49 +10:00
ehv_pic.h
elf.h powerpc: Set eflags correctly for ELF ABIv2 core dumps. 2013-11-21 09:19:18 +11:00
emergency-restart.h
emulated_ops.h powerpc: Add lq/stq emulation 2014-04-09 12:53:28 +10:00
epapr_hcalls.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
exception-64e.h powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
exception-64s.h powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
exec.h
fadump.h include/linux/crash_dump.h: add vmcore_cleanup() prototype 2014-04-07 16:36:06 -07:00
fb.h
feature-fixups.h
firmware.h powerpc/powernv: Detect OPAL v3 API version 2013-05-14 15:10:02 +10:00
fixmap.h powerpc: use generic fixmap.h 2014-01-23 16:36:54 -08:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h
fsl_hcalls.h
fsl_lbc.h powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_pamu_stash.h iommu/fsl: Add additional iommu attributes required by the PAMU driver. 2013-08-14 11:38:34 +02:00
ftrace.h powerpc: Remove function descriptors and dot symbols on new ABI 2014-04-23 10:05:20 +10:00
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Make irq_stat.timers_irqs counting more specific 2013-12-02 14:14:50 +11:00
heathrow.h
highmem.h
hugetlb.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
hvcall.h powerpc: Add hvcalls for 24x7 and gpci (Get Performance Counter Info) 2014-03-24 09:48:28 +11:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix endian issues in HVSI driver 2013-10-11 16:48:53 +11:00
hw_breakpoint.h powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
hw_irq.h powerpc: Access local paca after hard irq disabled 2013-07-24 14:18:44 +10:00
hydra.h
i8259.h
ibmebus.h ibmebus: convert of_platform_driver to platform_driver 2013-06-12 12:37:26 +01:00
ide.h
immap_cpm2.h
immap_qe.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc: Add real mode cache inhibited IO accessors 2013-12-05 16:08:21 +11:00
iommu.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
ipic.h
irq_regs.h
irq.h powerpc/irq: Run softirqs off the top of the irq stack 2013-09-25 14:15:36 +10:00
irqflags.h powerpc/tracing: TRACE_WITH_FRAME_BUFFER creates invalid stack frames 2014-04-23 10:05:25 +10:00
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
Kbuild locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Fix ABIv2 issues with kprobe_lookup_name 2014-04-23 10:05:33 +10:00
kvm_44x.h
kvm_asm.h Second batch of KVM updates. Some minor x86 fixes, 2014-01-31 08:37:32 -08:00
kvm_book3s_32.h KVM: PPC: Book3S PR: Allocate kvm_vcpu structs from kvm_vcpu_cache 2013-10-17 14:45:05 +02:00
kvm_book3s_64.h KVM: PPC: Book3S HV: Don't use kvm_memslots() in real mode 2014-03-29 19:58:35 +11:00
kvm_book3s_asm.h KVM: PPC: Book3S HV: Save/restore host PMU registers that are new in POWER8 2014-03-29 19:58:52 +11:00
kvm_book3s.h KVM: PPC: Book3S HV: Fix incorrect userspace exit on ioeventfd write 2014-03-26 23:33:44 +11:00
kvm_booke_hv_asm.h powerpc/booke64: Use SPRG_TLB_EXFRAME on bolted handlers 2014-03-19 19:57:15 -05:00
kvm_booke.h KVM: PPC: Book3S: MMIO emulation support for little endian guests 2014-01-27 16:00:39 +01:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Add new state for transactional memory 2014-01-27 16:01:20 +01:00
kvm_para.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
kvm_ppc.h KVM: PPC: Book3S: Introduce hypervisor call H_GET_TCE 2014-03-26 23:34:27 +11:00
libata-portmap.h
linkage.h powerpc: Remove function descriptors and dot symbols on new ABI 2014-04-23 10:05:20 +10:00
local64.h
local.h
lppaca.h powerpc: Make slb_shadow a local 2013-12-09 11:40:25 +11:00
lv1call.h
machdep.h powerpc: powernv: Framework to show the correct clock in /proc/cpuinfo 2014-04-28 17:36:38 +10:00
macio.h
mc146818rtc.h
mce.h powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
mediabay.h
mman.h
mmu_context.h sched: Rename sched.c as sched/core.c in comments and Documentation 2013-06-19 12:58:42 +02:00
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/e6500: Make TLB lock recursive 2014-03-19 19:57:13 -05:00
mmu-hash32.h
mmu-hash64.h powerpc: Book 3S MMU little endian support 2013-10-11 16:48:26 +11:00
mmu.h powerpc/e6500: TLB miss handler with hardware tablewalk support 2014-01-09 17:52:19 -06:00
mmzone.h
module.h powerpc/modules: Create module_trampoline_target() 2014-04-23 10:05:34 +10:00
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx_psc.h serial/mpc52xx_uart: add MPC5125 PSC support 2013-06-03 10:22:35 -07:00
mpc52xx.h
mpc85xx.h powerpc/85xx: Add support for 85xx cpu type detection 2013-08-23 19:01:03 -05:00
mpc5121.h powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
mpc8260.h
mpic_msgr.h
mpic_timer.h powerpc/mpic: add global timer support 2013-07-01 18:38:41 -05:00
mpic.h powerpc/msi: Fix compile error on mpc83xx 2013-08-07 18:38:04 -05:00
msi_bitmap.h
mutex.h arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not 2013-06-26 12:10:55 +02:00
nvram.h
ohare.h
opal.h powerpc/powernv: Return secondary CPUs to firmware before FW update 2014-04-28 17:36:34 +10:00
oprofile_impl.h
paca.h powerpc/booke64: Critical and machine check exception support 2014-03-19 19:57:27 -05:00
page_32.h
page_64.h mm: remove free_area_cache use in powerpc architecture 2013-04-30 11:05:10 +10:00
page.h powerpc: Fix 64K page size support for PPC44x 2013-10-30 16:00:51 +11:00
parport.h powerpc: use for_each_compatible_node() macro 2013-04-18 13:03:50 +10:00
pasemi_dma.h
pci-bridge.h powerpc/pci: Don't use bitfield for force_32bit_msi 2013-08-14 11:50:25 +10:00
pci.h PCI: use weak functions for MSI arch-specific functions 2013-08-12 15:26:39 +00:00
percpu.h
perf_event_fsl_emb.h powerpc/perf: increase the perf HW events to 6 2013-08-07 18:38:03 -05:00
perf_event_server.h powerpc/perf: Define perf_event_print_debug() to print PMU register values 2014-03-24 09:48:23 +11:00
perf_event.h
pgalloc-32.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc-64.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc.h powerpc: Move the pte free routines from common header 2013-04-30 16:00:04 +10:00
pgtable-ppc32.h
pgtable-ppc64-4k.h
pgtable-ppc64-64k.h powerpc/THP: Double the PMD table size for THP 2013-06-21 16:01:53 +10:00
pgtable-ppc64.h powerpc/mm: Add new "set" flag argument to pte/pmd update function 2014-02-17 11:19:35 +11:00
pgtable.h mm: Use ptep/pmdp_set_numa() for updating _PAGE_NUMA bit 2014-02-17 11:19:36 +11:00
plpar_wrappers.h pseries: Add H_SET_MODE to change exception endianness 2013-11-21 09:19:16 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc4xx_ocm.h
ppc4xx.h
ppc_asm.h powerpc: Add _GLOBAL_TOC for ABIv2 assembly functions exported to modules 2014-04-23 10:05:32 +10:00
ppc-opcode.h powerpc/bpf: Fix DIVWU instruction opcode 2013-10-31 16:19:20 +11:00
ppc-pci.h powerpc/eeh: No hotplug on permanently removed dev 2014-04-28 17:34:32 +10:00
probes.h powerpc: Move the single step enable code to a generic path 2013-06-20 16:55:09 +10:00
processor.h powerpc/powernv: Add context management for Fast Sleep 2014-03-05 15:56:31 +11:00
prom.h DeviceTree updates for 3.13. This is a bit larger pull request than 2013-11-12 16:52:17 +09:00
ps3.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: book3e: _PAGE_LENDIAN must be _PAGE_ENDIAN 2013-10-17 14:49:37 +02:00
pte-common.h
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h powerpc: Fix build errors STRICT_MM_TYPECHECKS 2013-05-14 14:36:20 +10:00
pte-hash64.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
ptrace.h powerpc: Increase stack redzone for 64-bit userspace to 512 bytes 2014-02-28 18:06:26 +11:00
qe_ic.h
qe.h
reg_8xx.h
reg_a2.h
reg_booke.h powerpc/fsl: add E6500 PVR and SPRN_PWRMGTCR0 define 2014-01-07 19:29:23 -06:00
reg_fsl_emb.h powerpc/perf: Add e6500 PMU driver 2013-08-07 18:38:04 -05:00
reg.h powerpc/tm: Add checking to treclaim/trechkpt 2014-04-28 17:36:51 +10:00
rheap.h
rio.h
rtas.h powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
rtc.h
runlatch.h
scatterlist.h
scom.h powerpc/scom: Enable 64-bit addresses 2013-11-06 14:13:49 +11:00
sections.h powerpc: Fix ABIv2 issue with dereference_function_descriptor 2014-04-23 10:05:26 +10:00
serial.h
setjmp.h
setup.h powerpc: Clean up panic_timeout usage 2013-11-26 12:12:28 +01:00
sfp-machine.h powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
shmparam.h
signal.h powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions 2013-06-01 08:29:23 +10:00
smp.h powerpc: Implement tick broadcast IPI as a fixed IPI message 2014-03-05 15:55:04 +11:00
smu.h
sparsemem.h
spinlock_types.h
spinlock.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
spu_csa.h
spu_info.h
spu_priv1.h
spu.h switch elf_coredump_extra_notes_write() to dump_emit() 2013-11-09 00:16:24 -05:00
sstep.h
string.h powerpc: memcpy optimization for 64bit LE 2014-04-30 15:26:18 +10:00
swab.h
swiotlb.h
switch_to.h Merge branch 'kvm-ppc-next' of git://github.com/agraf/linux-2.6 into kvm-queue 2014-01-29 18:29:01 +01:00
synch.h
syscall.h
syscalls.h
systbl.h powerpc: Create DOTSYM to wrap dot symbol usage 2014-04-23 10:05:19 +10:00
tce.h
termios.h
thread_info.h powerpc: Don't corrupt transactional state when using FP/VMX in kernel 2014-01-15 13:59:11 +11:00
time.h powerpc: Implement tick broadcast IPI as a fixed IPI message 2014-03-05 15:55:04 +11:00
timex.h powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported 2013-11-22 16:56:48 -06:00
tlb.h
tlbflush.h powerpc/THP: Implement transparent hugepages for ppc64 2013-06-21 16:01:53 +10:00
tm.h Merge branch 'kvm-ppchv-next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-next 2014-03-29 15:44:05 +01:00
topology.h sched: Remove unused mc_capable() and smt_capable() 2014-03-11 12:05:45 +01:00
trace.h
tsi108_irq.h
tsi108_pci.h
tsi108.h
types.h
uaccess.h powerpc: uaccess s/might_sleep/might_fault/ 2013-05-28 09:41:09 +02:00
ucc_fast.h
ucc_slow.h
ucc.h
udbg.h powerpc: Cleanup udbg_16550 and add support for LPC PIO-only UARTs 2013-08-14 14:58:15 +10:00
uic.h
unaligned.h powerpc: Make unaligned accesses endian-safe for powerpc 2013-12-30 14:02:29 +11:00
uninorth.h
unistd.h powerpc: Wire up sched_setattr and sched_getattr syscalls 2014-01-29 17:13:05 +11:00
uprobes.h uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
user.h
vdso_datapage.h
vdso.h powerpc: Link VDSOs at 0x0 2014-02-17 11:19:37 +11:00
vga.h
vio.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
word-at-a-time.h powerpc: word-at-a-time optimization for 64-bit Little Endian 2013-10-31 16:19:16 +11:00
wsp.h
xics.h powerpc/powernv: Patch MSI EOI handler on P8 2013-04-26 16:09:59 +10:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h powerpc: Add VMX optimised xor for RAID5 2013-10-30 16:02:28 +11:00