git: 39afff09c550 - main - callout: tidy up _callout_init_lock()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 20 Jun 2024 17:53:51 UTC
The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=39afff09c5509c2e838c370a0c476dd9ac97d622 commit 39afff09c5509c2e838c370a0c476dd9ac97d622 Author: Gleb Smirnoff <glebius@FreeBSD.org> AuthorDate: 2024-06-20 17:53:31 +0000 Commit: Gleb Smirnoff <glebius@FreeBSD.org> CommitDate: 2024-06-20 17:53:31 +0000 callout: tidy up _callout_init_lock() Separate function into assertive part and into assigning part. Consistently use __func__ in the assertions. Write the assigning code in a declarative style. The functional change is that we no longer validate flags in the non-INVARIANT kernel. The assertion that checks flags has been there for 17 years, so all code that calls with invalid flags must have been filtered and fixed. --- sys/kern/kern_timeout.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c index 5f2d78285c66..e06cf997ab8a 100644 --- a/sys/kern/kern_timeout.c +++ b/sys/kern/kern_timeout.c @@ -1331,16 +1331,18 @@ callout_init(struct callout *c, int mpsafe) void _callout_init_lock(struct callout *c, struct lock_object *lock, int flags) { - bzero(c, sizeof *c); - c->c_lock = lock; KASSERT((flags & ~(CALLOUT_RETURNUNLOCKED | CALLOUT_SHAREDLOCK)) == 0, - ("callout_init_lock: bad flags %d", flags)); + ("%s: bad flags %d", __func__, flags)); KASSERT(lock != NULL || (flags & CALLOUT_RETURNUNLOCKED) == 0, - ("callout_init_lock: CALLOUT_RETURNUNLOCKED with no lock")); + ("%s: CALLOUT_RETURNUNLOCKED with no lock", __func__)); KASSERT(lock == NULL || !(LOCK_CLASS(lock)->lc_flags & LC_SLEEPABLE), ("%s: callout %p has sleepable lock", __func__, c)); - c->c_iflags = flags & (CALLOUT_RETURNUNLOCKED | CALLOUT_SHAREDLOCK); - c->c_cpu = cc_default_cpu; + + *c = (struct callout ){ + .c_lock = lock, + .c_iflags = flags, + .c_cpu = cc_default_cpu, + }; } static int