Page MenuHomeFreeBSD

D28821.1784750053.diff
No OneTemporary

Size
579 B
Referenced Files
None
Subscribers
None

D28821.1784750053.diff

diff --git a/sys/kern/kern_rmlock.c b/sys/kern/kern_rmlock.c
--- a/sys/kern/kern_rmlock.c
+++ b/sys/kern/kern_rmlock.c
@@ -362,7 +362,11 @@
/* Remove our tracker from the per-cpu list. */
rm_tracker_remove(pc, tracker);
- /* Check to see if the IPI granted us the lock after all. */
+ /*
+ * Check to see if the IPI granted us the lock after all. The load of
+ * rmp_flags must happen after the tracker is removed from the list.
+ */
+ __compiler_membar();
if (tracker->rmp_flags) {
/* Just add back tracker - we hold the lock. */
rm_tracker_add(pc, tracker);

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 22, 7:54 PM (4 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29230691
Default Alt Text
D28821.1784750053.diff (579 B)

Event Timeline