The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=77e894cb09affe828f4bc81b8e4751a7e22860de
commit 77e894cb09affe828f4bc81b8e4751a7e22860de Author: Dag-Erling Smørgrav <[email protected]> AuthorDate: 2026-06-05 21:50:46 +0000 Commit: Dag-Erling Smørgrav <[email protected]> CommitDate: 2026-06-05 21:50:46 +0000 audit: Replace TAILQ with STAILQ This reduces the size of a trigger entry from 24 bytes to 16 (or from 12 bytes to 8 on 32-bit) with no additional complexity. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, emaste Differential Revision: https://reviews.freebsd.org/D57464 --- sys/security/audit/audit_trigger.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/sys/security/audit/audit_trigger.c b/sys/security/audit/audit_trigger.c index e2520292cc5d..b7ed68f73363 100644 --- a/sys/security/audit/audit_trigger.c +++ b/sys/security/audit/audit_trigger.c @@ -50,13 +50,13 @@ */ struct trigger_info { unsigned int trigger; - TAILQ_ENTRY(trigger_info) list; + STAILQ_ENTRY(trigger_info) list; }; static MALLOC_DEFINE(M_AUDITTRIGGER, "audit_trigger", "Audit trigger events"); static struct cdev *audit_dev; static int audit_isopen = 0; -static TAILQ_HEAD(, trigger_info) trigger_list; +static STAILQ_HEAD(, trigger_info) trigger_list; static struct mtx audit_trigger_mtx; static struct selinfo audit_trigger_rsel; @@ -85,9 +85,9 @@ audit_close(struct cdev *dev, int fflag, int devtype, struct thread *td) /* Flush the queue of pending trigger events. */ mtx_lock(&audit_trigger_mtx); audit_isopen = 0; - while (!TAILQ_EMPTY(&trigger_list)) { - ti = TAILQ_FIRST(&trigger_list); - TAILQ_REMOVE(&trigger_list, ti, list); + while (!STAILQ_EMPTY(&trigger_list)) { + ti = STAILQ_FIRST(&trigger_list); + STAILQ_REMOVE_HEAD(&trigger_list, list); free(ti, M_AUDITTRIGGER); } mtx_unlock(&audit_trigger_mtx); @@ -102,15 +102,15 @@ audit_read(struct cdev *dev, struct uio *uio, int ioflag) struct trigger_info *ti = NULL; mtx_lock(&audit_trigger_mtx); - while (TAILQ_EMPTY(&trigger_list)) { + while (STAILQ_EMPTY(&trigger_list)) { error = msleep(&trigger_list, &audit_trigger_mtx, PSOCK | PCATCH, "auditd", 0); if (error) break; } if (!error) { - ti = TAILQ_FIRST(&trigger_list); - TAILQ_REMOVE(&trigger_list, ti, list); + ti = STAILQ_FIRST(&trigger_list); + STAILQ_REMOVE_HEAD(&trigger_list, list); } mtx_unlock(&audit_trigger_mtx); if (!error) { @@ -135,7 +135,7 @@ audit_poll(struct cdev *dev, int events, struct thread *td) if (events & (POLLIN | POLLRDNORM)) { mtx_lock(&audit_trigger_mtx); - if (!TAILQ_EMPTY(&trigger_list)) + if (!STAILQ_EMPTY(&trigger_list)) revents = events & (POLLIN | POLLRDNORM); else selrecord(td, &audit_trigger_rsel); @@ -158,7 +158,7 @@ audit_send_trigger(unsigned int trigger) return (ENODEV); } ti->trigger = trigger; - TAILQ_INSERT_TAIL(&trigger_list, ti, list); + STAILQ_INSERT_TAIL(&trigger_list, ti, list); selwakeup(&audit_trigger_rsel); wakeup(&trigger_list); mtx_unlock(&audit_trigger_mtx); @@ -179,7 +179,7 @@ void audit_trigger_init(void) { - TAILQ_INIT(&trigger_list); + STAILQ_INIT(&trigger_list); mtx_init(&audit_trigger_mtx, "audit_trigger_mtx", NULL, MTX_DEF); }
