Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Apr 2025 22:51:13 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 51489b9ced27 - stable/14 - ktrace: Use STAILQ_EMPTY_ATOMIC when checking for records in userret()
Message-ID:  <202504062251.536MpDJ4077151@gitrepo.freebsd.org>

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

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

commit 51489b9ced27afdf9ea34edc65c8c31274ccc9c5
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2025-03-23 11:54:59 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2025-04-06 13:54:13 +0000

    ktrace: Use STAILQ_EMPTY_ATOMIC when checking for records in userret()
    
    As in commit 36631977d8c9, this check is unlocked and may trigger
    spurious assertion failures.  Use STAILQ_EMPTY_ATOMIC() here as well.
    Fix nearby whitespace.
    
    Reported by:    syzkaller
    Reviewed by:    olce
    Fixes:          34740937f7a4 ("queue: New debug macros for STAILQ")
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D49441
    
    (cherry picked from commit e9a846468acfbba35ca40b888670559aaff7228d)
---
 sys/sys/ktrace.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/sys/sys/ktrace.h b/sys/sys/ktrace.h
index 2618c7c719b3..b615d82d2198 100644
--- a/sys/sys/ktrace.h
+++ b/sys/sys/ktrace.h
@@ -89,10 +89,9 @@ struct ktr_header {
  * is the public interface.
  */
 #define	KTRCHECK(td, type)	((td)->td_proc->p_traceflag & (1 << type))
-#define KTRPOINT(td, type)  (__predict_false(KTRCHECK((td), (type))))
-#define	KTRCHECKDRAIN(td)	(!(STAILQ_EMPTY(&(td)->td_proc->p_ktr)))
+#define	KTRPOINT(td, type)	(__predict_false(KTRCHECK((td), (type))))
 #define	KTRUSERRET(td) do {						\
-	if (__predict_false(KTRCHECKDRAIN(td)))				\
+	if (__predict_false(!STAILQ_EMPTY_ATOMIC(&(td)->td_proc->p_ktr))) \
 		ktruserret(td);						\
 } while (0)
 



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