Page MenuHomeFreeBSD

D28821.id84355.diff
No OneTemporary

D28821.id84355.diff

Index: sys/kern/kern_rmlock.c
===================================================================
--- sys/kern/kern_rmlock.c
+++ 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
Thu, Nov 27, 6:48 AM (3 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26237235
Default Alt Text
D28821.id84355.diff (611 B)

Event Timeline