diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2021-05-22 20:51:37 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2021-06-07 00:34:52 +0000 |
commit | 0917d91b33444ca55b132954cc33f0d409f5a4cc (patch) | |
tree | d9580c7fe29ba30c1af975653f02af98cda402ac | |
parent | 997332f9cda66d7c42d51daac92e6e8ca83ed7a0 (diff) | |
download | src-0917d91b33444ca55b132954cc33f0d409f5a4cc.tar.gz src-0917d91b33444ca55b132954cc33f0d409f5a4cc.zip |
umtx: convert umtxq_lock to a macro
Then LOCK_PROFILING starts reporting callers instead of the inline.
(cherry picked from commit 138f78e94bf83a8a92987d8be81f1e2c6c277cf8)
-rw-r--r-- | sys/kern/kern_umtx.c | 18 |
1 files 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. |