Files
linux/arch
John David Anglin 700349754e parisc: Define mb() and add memory barriers to assembler unlock sequences
commit fedb8da963 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-05-12 16:46:36 +09:00
..
2018-05-30 13:19:56 +02:00
2018-05-19 14:06:17 +02:00
2018-05-30 13:19:56 +02:00
2018-02-17 14:52:07 +01:00
2016-10-19 08:39:47 -07:00
2018-06-06 18:34:12 +02:00
2023-05-12 16:45:41 +09:00
2018-07-03 18:27:19 +02:00