git: d850e957e937 - releng/14.0 - timerfd: convert timerfd_list_lock from sx to mtx

From: Warner Losh <imp_at_FreeBSD.org>
Date: Thu, 28 Sep 2023 22:28:16 UTC
The branch releng/14.0 has been updated by imp:

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

commit d850e957e9370ba068e8a05099f0fb6fa84f6b52
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-17 15:01:33 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-09-28 22:26:22 +0000

    timerfd: convert timerfd_list_lock from sx to mtx
    
    There was no good reason to use the former. This should prevent some
    head-scratching by an interested and qualified reader.
    
    (cherry picked from commit f4296cfb409a48de00bfa60e76f686c2b031876f)
    (cherry picked from commit a87dddf39e866015341003eeac76d736d993514a)
    
    Approved-by: re (cperciva)
---
 sys/kern/sys_timerfd.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/sys/kern/sys_timerfd.c b/sys/kern/sys_timerfd.c
index c8b45a926b02..e4d2f10f28ef 100644
--- a/sys/kern/sys_timerfd.c
+++ b/sys/kern/sys_timerfd.c
@@ -61,9 +61,9 @@
 
 static MALLOC_DEFINE(M_TIMERFD, "timerfd", "timerfd structures");
 
-static struct sx timerfd_list_lock;
+static struct mtx timerfd_list_lock;
 static LIST_HEAD(, timerfd) timerfd_list;
-SX_SYSINIT(timerfd, &timerfd_list_lock, "timerfd_list_lock");
+MTX_SYSINIT(timerfd, &timerfd_list_lock, "timerfd_list_lock", MTX_DEF);
 
 static struct unrhdr64 tfdino_unr;
 
@@ -133,7 +133,7 @@ timerfd_jumped(void)
 		return;
 
 	timerfd_getboottime(&boottime);
-	sx_xlock(&timerfd_list_lock);
+	mtx_lock(&timerfd_list_lock);
 	LIST_FOREACH(tfd, &timerfd_list, entry) {
 		mtx_lock(&tfd->tfd_lock);
 		if (tfd->tfd_clockid != CLOCK_REALTIME ||
@@ -169,7 +169,7 @@ timerfd_jumped(void)
 		tfd->tfd_boottim = boottime;
 		mtx_unlock(&tfd->tfd_lock);
 	}
-	sx_xunlock(&timerfd_list_lock);
+	mtx_unlock(&timerfd_list_lock);
 }
 
 static int
@@ -324,9 +324,9 @@ timerfd_close(struct file *fp, struct thread *td)
 {
 	struct timerfd *tfd = fp->f_data;
 
-	sx_xlock(&timerfd_list_lock);
+	mtx_lock(&timerfd_list_lock);
 	LIST_REMOVE(tfd, entry);
-	sx_xunlock(&timerfd_list_lock);
+	mtx_unlock(&timerfd_list_lock);
 
 	callout_drain(&tfd->tfd_callout);
 	seldrain(&tfd->tfd_sel);
@@ -450,9 +450,9 @@ kern_timerfd_create(struct thread *td, int clockid, int flags)
 	knlist_init_mtx(&tfd->tfd_sel.si_note, &tfd->tfd_lock);
 	timerfd_getboottime(&tfd->tfd_boottim);
 	getnanotime(&tfd->tfd_birthtim);
-	sx_xlock(&timerfd_list_lock);
+	mtx_lock(&timerfd_list_lock);
 	LIST_INSERT_HEAD(&timerfd_list, tfd, entry);
-	sx_xunlock(&timerfd_list_lock);
+	mtx_unlock(&timerfd_list_lock);
 
 	finit(fp, fflags, DTYPE_TIMERFD, tfd, &timerfdops);