Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 1 Mar 2022 14:39:53 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 89ae8eb74e87 - main - rmlock: Add required compiler barriers to _rm_runlock()
Message-ID:  <202203011439.221Edr4X038450@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=89ae8eb74e87ac19aa2d7abe4ba16bcccd32bb9f

commit 89ae8eb74e87ac19aa2d7abe4ba16bcccd32bb9f
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2022-03-01 13:55:43 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2022-03-01 14:38:45 +0000

    rmlock: Add required compiler barriers to _rm_runlock()
    
    Also remove excessive whitespace in _rm_rlock().
    
    Reviewed by:    jah, mjg
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D34381
---
 sys/kern/kern_rmlock.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/sys/kern/kern_rmlock.c b/sys/kern/kern_rmlock.c
index bbea8041360a..0cdcfb8fec62 100644
--- a/sys/kern/kern_rmlock.c
+++ b/sys/kern/kern_rmlock.c
@@ -449,17 +449,13 @@ _rm_rlock(struct rmlock *rm, struct rm_priotracker *tracker, int trylock)
 		THREAD_NO_SLEEPING();
 
 	td->td_critnest++;	/* critical_enter(); */
-
 	atomic_interrupt_fence();
 
 	pc = get_pcpu();
-
 	rm_tracker_add(pc, tracker);
-
 	sched_pin();
 
 	atomic_interrupt_fence();
-
 	td->td_critnest--;
 
 	/*
@@ -517,8 +513,12 @@ _rm_runlock(struct rmlock *rm, struct rm_priotracker *tracker)
 		return;
 
 	td->td_critnest++;	/* critical_enter(); */
+	atomic_interrupt_fence();
+
 	pc = get_pcpu();
 	rm_tracker_remove(pc, tracker);
+
+	atomic_interrupt_fence();
 	td->td_critnest--;
 	sched_unpin();
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202203011439.221Edr4X038450>