linux/arch/parisc/kernel
John David Anglin 9e5c602186 parisc: Use ldcw instruction for SMP spinlock release barrier
There are only a couple of instructions that can function as a memory
barrier on parisc.  Currently, we use the sync instruction as a memory
barrier when releasing a spinlock.  However, the ldcw instruction is a
better barrier when we have a handy memory location since it operates in
the cache on coherent machines.

This patch updates the spinlock release code to use ldcw.  I also
changed the "stw,ma" instructions to "stw" instructions as it is not an
adequate barrier.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
2019-05-03 23:47:40 +02:00
..
syscalls arch: add pidfd and io_uring syscalls everywhere 2019-04-15 16:31:17 +02:00
.gitignore parisc: add arch/parisc/kernel/.gitignore 2008-10-10 16:32:28 +00:00
alternative.c parisc: Split out alternative live patching code 2018-12-10 07:47:50 +01:00
asm-offsets.c parisc: Drop per_cpu uaccess related exception_data struct 2017-05-10 17:46:13 +02:00
audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cache.c parisc: Optimze cache flush algorithms 2018-10-20 21:10:26 +02:00
compat_audit.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
drivers.c parisc: Convert printk(KERN_LEVEL) to pr_lvl() 2018-06-28 17:14:44 +02:00
entry.S parisc: Use ldcw instruction for SMP spinlock release barrier 2019-05-03 23:47:40 +02:00
firmware.c parisc: Show machine product number during boot 2019-02-21 20:37:13 +01:00
ftrace.c parisc: function_graph: Simplify with function_graph_enter() 2018-11-27 20:30:52 -05:00
hardware.c parisc: Move various functions and strings to init section 2018-03-27 18:52:21 +02:00
head.S parisc: enable wide mode early 2019-05-03 23:47:40 +02:00
hpmc.S parisc: Fix exported address of os_hpmc handler 2018-10-17 08:18:01 +02:00
inventory.c parisc: Retrieve and display the PDC PAT capabilities 2018-10-20 21:10:37 +02:00
irq.c parisc: Improve initial IRQ to CPU assignment 2019-02-21 20:37:11 +01:00
kgdb.c parisc: add KGDB support 2019-05-03 23:47:38 +02:00
kprobes.c parisc: Implement kretprobes 2019-05-03 23:47:39 +02:00
Makefile parisc: Implement kprobes 2019-05-03 23:47:39 +02:00
module.c parisc: Split out alternative live patching code 2018-12-10 07:47:50 +01:00
pa7300lc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pacache.S parisc: Remove lock code to serialize TLB operations in pacache.S 2019-05-03 23:47:40 +02:00
parisc_ksyms.c parisc: Switch from DISCONTIGMEM to SPARSEMEM 2019-05-03 23:47:40 +02:00
patch.c parisc: remove unused flags parameter in __patch_text() 2019-05-03 23:47:39 +02:00
pci-dma.c dma-mapping: zero memory returned from dma_alloc_* 2018-12-20 08:13:52 +01:00
pci.c parisc: Fix section mismatches 2018-05-02 21:47:35 +02:00
pdc_chassis.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
pdc_cons.c treewide: Switch DEFINE_TIMER callbacks to struct timer_list * 2017-11-21 15:57:05 -08:00
pdt.c mm/memory_failure: Remove unused trapno from memory_failure 2018-01-23 12:17:42 -06:00
perf_asm.S
perf_images.h
perf.c parisc: Static initialization of spinlocks in perf and unwind code 2017-08-22 16:34:33 +02:00
process.c parisc: Export running_on_qemu symbol for modules 2019-05-03 23:47:38 +02:00
processor.c parisc: Show n/a if product number not available 2019-05-03 23:47:39 +02:00
ptrace.c parisc: add functions required by KPROBE_EVENTS 2019-05-03 23:47:39 +02:00
real2.S parisc: Fix and improve kernel stack unwinding 2018-08-13 09:54:17 +02:00
setup.c parisc: Detect QEMU earlier in boot process 2019-04-06 19:07:55 +02:00
signal32.c signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal32.h signal: Unify and correct copy_siginfo_to_user32 2018-01-15 19:56:20 -06:00
signal.c parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00
smp.c parisc: Count IPI function call interrupts 2019-02-21 20:37:11 +01:00
stacktrace.c parisc: Consolidate unwind initialization calls 2018-08-17 17:00:08 +02:00
sys_parisc32.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sys_parisc.c parisc: Consider stack randomization for mmap base only when necessary 2019-05-03 23:47:38 +02:00
syscall.S parisc: Use ldcw instruction for SMP spinlock release barrier 2019-05-03 23:47:40 +02:00
time.c parisc: time: Convert read_persistent_clock() to read_persistent_clock64() 2018-04-20 20:18:21 +02:00
topology.c parisc: Add CPU topology support 2017-11-17 15:27:22 +01:00
traps.c parisc: Implement kprobes 2019-05-03 23:47:39 +02:00
unaligned.c signal/parisc: Use force_sig_fault where appropriate 2018-04-25 10:44:06 -05:00
unwind.c parisc: Fix uninitialized variable usage in unwind.c 2018-10-16 11:37:29 +02:00
vmlinux.lds.S parisc: Add alternative coding infrastructure 2018-10-17 17:22:26 +02:00