Mark Johnston 1d44514fcd rmlock: Add a required compiler membar to the rlock slow path
The tracker flags need to be loaded only after the tracker is removed
from its per-CPU queue.  Otherwise, readers may fail to synchronize with
pending writers attempting to propagate priority to active readers, and
readers and writers deadlock on each other.  This was observed in a
stable/12-based armv7 kernel where the compiler had reordered the load
of rmp_flags to before the stores updating the queue.

Reviewed by:	rlibby, scottl
Discussed with:	kib
Sponsored by:	Rubicon Communications, LLC ("Netgate")
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D28821
2021-02-23 21:17:12 -05:00
..
2020-02-26 16:22:28 +00:00
2021-01-02 19:57:58 -07:00
2020-10-05 15:54:19 +00:00
2021-02-23 17:47:07 +00:00
2020-11-19 02:50:48 +00:00
2020-12-04 18:56:44 +00:00
2021-01-18 09:51:48 +02:00
2020-11-05 15:08:56 +00:00
2018-10-12 00:32:45 +00:00
2020-11-09 00:34:23 +00:00
2020-08-13 20:48:14 +00:00
2019-02-20 09:38:19 +00:00
2020-12-01 16:06:31 +00:00
2020-01-12 23:52:16 +00:00
2020-08-27 05:11:15 +00:00
2021-02-09 17:09:44 +01:00
2021-02-21 00:43:05 +00:00
2021-02-21 00:43:05 +00:00