Date: Mon, 23 Mar 2026 15:08:23 +0000 From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav <des@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 47caac85ec51 - stable/15 - queue.h: Reorder STAILQ_INSERT_TAIL Message-ID: <69c15767.20faa.56367333@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=47caac85ec51e2f3fefc976a5e110f444693b657 commit 47caac85ec51e2f3fefc976a5e110f444693b657 Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2026-03-16 20:36:56 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2026-03-22 17:32:41 +0000 queue.h: Reorder STAILQ_INSERT_TAIL The current implementation briefly violates the tail invariant. This is not usually an issue, but if an insert is in flight when a panic occurs, we may then trip the invariant while dumping core. MFC after: 1 week Sponsored by: Klara, Inc. Sponsored by: NetApp, Inc. Reviewed by: obiwac, olce, jhb Differential Revision: https://reviews.freebsd.org/D55819 (cherry picked from commit aa15df4597053c0e95a15b2a7036296999cd562a) --- sys/sys/queue.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/sys/queue.h b/sys/sys/queue.h index aa6453889e6b..e2603bc664c3 100644 --- a/sys/sys/queue.h +++ b/sys/sys/queue.h @@ -499,9 +499,10 @@ struct { \ #define STAILQ_INSERT_TAIL(head, elm, field) do { \ QMD_STAILQ_CHECK_TAIL(head); \ + __typeof__((head)->stqh_last) prevlast = (head)->stqh_last; \ STAILQ_NEXT((elm), field) = NULL; \ - *(head)->stqh_last = (elm); \ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ + *prevlast = (elm); \ } while (0) #define STAILQ_LAST(head, type, field) \home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69c15767.20faa.56367333>
