2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 02:34:01 +08:00
linux-next/arch
John David Anglin fedb8da963 parisc: Define mb() and add memory barriers to assembler unlock sequences
For years I thought all parisc machines executed loads and stores in
order. However, Jeff Law recently indicated on gcc-patches that this is
not correct. There are various degrees of out-of-order execution all the
way back to the PA7xxx processor series (hit-under-miss). The PA8xxx
series has full out-of-order execution for both integer operations, and
loads and stores.

This is described in the following article:
http://web.archive.org/web/20040214092531/http://www.cpus.hp.com/technical_references/advperf.shtml

For this reason, we need to define mb() and to insert a memory barrier
before the store unlocking spinlocks. This ensures that all memory
accesses are complete prior to unlocking. The ldcw instruction performs
the same function on entry.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: stable@vger.kernel.org # 4.0+
Signed-off-by: Helge Deller <deller@gmx.de>
2018-08-08 22:13:32 +02:00
..
alpha alpha: fix osf_wait4() breakage 2018-07-22 11:51:30 -07:00
arc arc: fix type warnings in arc/mm/cache.c 2018-07-30 11:48:50 -07:00
arm Merge branch 'fixes' of git://git.armlinux.org.uk/~rmk/linux-arm 2018-08-01 15:01:26 -07:00
arm64 arm64 regression fix 2018-08-02 10:21:49 -07:00
c6x Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 20:27:54 -07:00
h8300 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 20:27:54 -07:00
hexagon hexagon: drop the unused variable zero_page_mask 2018-06-15 07:55:25 +09:00
ia64 mm: do not initialize TLB stack vma's with vma_init() 2018-08-01 13:43:38 -07:00
m68k m68k: fix "bad page state" oops on ColdFire boot 2018-07-02 10:05:13 +10:00
microblaze Microblaze patches for 4.18-rc3 2018-06-27 09:49:30 -07:00
mips One more fix for 4.18: 2018-07-28 12:32:28 -07:00
nds32 nds32: fix build error "relocation truncated to fit: R_NDS32_25_PCREL_RELA" when 2018-07-05 16:13:47 +08:00
nios2 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-06-04 20:27:54 -07:00
openrisc openrisc: entry: Fix delay slot exception detection 2018-07-01 16:48:24 +09:00
parisc parisc: Define mb() and add memory barriers to assembler unlock sequences 2018-08-08 22:13:32 +02:00
powerpc powerpc fixes for 4.18 #5 2018-08-03 10:38:21 -07:00
riscv RISC-V: Fix the rv32i kernel build 2018-07-04 14:12:53 -07:00
s390 s390: disable gcc plugins 2018-07-24 08:10:52 +02:00
sh arch/*: Kconfig: fix documentation for NMI watchdog 2018-06-15 12:48:59 -03:00
sparc sparc: use asm-generic version of msi.h 2018-07-30 13:00:56 -07:00
um Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
unicore32 docs: Fix some broken references 2018-06-15 18:10:01 -03:00
x86 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-08-05 09:39:30 -07:00
xtensa docs: Fix some broken references 2018-06-15 18:10:01 -03:00
.gitignore
Kconfig docs: Fix some broken references 2018-06-15 18:10:01 -03:00