> Here are a few more instances of KASSERT being placed in an #ifdef DIAGNOSTIC > block. This is redundant, as KASSERT is already a nop if DIAGNOSTIC is not > defined.
Yes and no. You are right that KASSERT is a nop on non-DIAGNOSTIC kernels, but there are sometimes good reasons to keep a single KASSERT (or a set of KASSERTs) wrapped within #ifdef DIAGNOSTIC. > Index: crypto/blake2s.c In this case, the removal is valid and worth doing (in blake2s.h too). > Index: dev/ic/ahci.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/ahci.c,v > retrieving revision 1.38 > diff -u -p -r1.38 ahci.c > --- dev/ic/ahci.c 9 Apr 2022 20:10:26 -0000 1.38 > +++ dev/ic/ahci.c 19 Jan 2023 13:30:37 -0000 > @@ -2472,19 +2472,16 @@ ahci_put_err_ccb(struct ahci_ccb *ccb) > > splassert(IPL_BIO); > > -#ifdef DIAGNOSTIC > KASSERT(ap->ap_err_busy); > -#endif > + In this case, I would keep the #ifdef because this field only exists #ifdef DIAGNOSTIC, so all the code operating on it should have such guards for consistency. > /* No commands may be active on the chip */ > sact = ahci_pread(ap, AHCI_PREG_SACT); > if (sact != 0) > printf("ahci_put_err_ccb but SACT %08x != 0?\n", sact); > KASSERT(ahci_pread(ap, AHCI_PREG_CI) == 0); > > -#ifdef DIAGNOSTIC > /* Done with the CCB */ > KASSERT(ccb == ap->ap_ccb_err); > -#endif In this case, on the other hand, the #ifdef can be removed. > Index: dev/wscons/wsemul_sun.c > =================================================================== > RCS file: /cvs/src/sys/dev/wscons/wsemul_sun.c,v > retrieving revision 1.34 > diff -u -p -r1.34 wsemul_sun.c > --- dev/wscons/wsemul_sun.c 25 May 2020 09:55:49 -0000 1.34 > +++ dev/wscons/wsemul_sun.c 19 Jan 2023 13:30:38 -0000 > @@ -242,9 +242,9 @@ wsemul_sun_attach(int console, const str > > if (console) { > edp = &wsemul_sun_console_emuldata; > -#ifdef DIAGNOSTIC > + > KASSERT(edp->console == 1); > -#endif > + Same as for ahci: The `console' field only exists #ifdef DIAGNOSTIC, so the guards must remain (and in that respect, wsemul_vt100.c r1.40 was a mistake). > Index: net/wg_noise.c The removal is valid here.