The branch main has been updated by mjg:

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

commit 138f78e94bf83a8a92987d8be81f1e2c6c277cf8
Author:     Mateusz Guzik <m...@freebsd.org>
AuthorDate: 2021-05-22 20:51:37 +0000
Commit:     Mateusz Guzik <m...@freebsd.org>
CommitDate: 2021-05-22 21:01:05 +0000

    umtx: convert umtxq_lock to a macro
    
    Then LOCK_PROFILING starts reporting callers instead of the inline.
---
 sys/kern/kern_umtx.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/sys/kern/kern_umtx.c b/sys/kern/kern_umtx.c
index 784c10cb97ac..a1dca77fe991 100644
--- a/sys/kern/kern_umtx.c
+++ b/sys/kern/kern_umtx.c
@@ -272,7 +272,6 @@ static void umtx_shm_init(void);
 static void umtxq_sysinit(void *);
 static void umtxq_hash(struct umtx_key *key);
 static struct umtxq_chain *umtxq_getchain(struct umtx_key *key);
-static void umtxq_lock(struct umtx_key *key);
 static void umtxq_unlock(struct umtx_key *key);
 static void umtxq_busy(struct umtx_key *key);
 static void umtxq_unbusy(struct umtx_key *key);
@@ -501,15 +500,16 @@ umtxq_getchain(struct umtx_key *key)
 
 /*
  * Lock a chain.
+ *
+ * The code is a macro so that file/line information is taken from the caller.
  */
-static inline void
-umtxq_lock(struct umtx_key *key)
-{
-       struct umtxq_chain *uc;
-
-       uc = umtxq_getchain(key);
-       mtx_lock(&uc->uc_lock);
-}
+#define umtxq_lock(key) do {           \
+       struct umtx_key *_key = (key);  \
+       struct umtxq_chain *_uc;        \
+                                       \
+       _uc = umtxq_getchain(_key);     \
+       mtx_lock(&_uc->uc_lock);        \
+} while (0)
 
 /*
  * Unlock a chain.
_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to