From nobody Thu Jan 29 00:03:28 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f1fVm5Lc2z6QPxf for ; Thu, 29 Jan 2026 00:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f1fVm3Cvyz3GYk for ; Thu, 29 Jan 2026 00:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769645008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MG7jbOUpCGWXEqFmcdrUEzzAkdQ49AQq4ydCKmjWbKY=; b=viPPrzA07xucJ1Li56EcRD+Yor8HH8eIDoK6lKmRZ2we54PhOCkDWFAfjSyCRsKwoqby1w LXwoMCLSJCMzCinOPxZTSlrTq+7mSi3/84dA2S3wd3SklXkff/G6qCAvAeolcyP3t/RuS2 rZcqbU5Hf6d1RoDXT6tE8wVflXFS21g/9d8XnGn4RaQTaJ2tNrA1BYaL3fd74XcueqeOYy KCqP2KAzX2LsGjwToIb/EEclWg7xViLUFlbgBUoVRDa8W7MHiPlnDJKIoHnRKSXGUyNP5D F+NhyaazxFY2dMqRqQSNdeNTKzNLtGFX1MdkjaaNnoLavU35fKUMC60yN+aygw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1769645008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MG7jbOUpCGWXEqFmcdrUEzzAkdQ49AQq4ydCKmjWbKY=; b=AeVUeaVgBLwmDIZ12bAlkWiio3w+PkYKaekDCmwSHCMocXYsk3EQaOv70v1chnPoXtwml6 I610Ag97bp83RJTVk4ixHs2vf6gAKjed3cinfNkGbZI+Dcjn5Z6ALm89AbrRjlGxJQlkt2 dC43Q90LU4mYRQjKsJk5dmjFooNafT2+ZCwFHN9hmcbbhnMkgjx66+GQ1dWJ/gx2601JtP Dn/ocNPr7BKilVV/hFOUH2pzZ+7K7ebsTQwBF/rZSmo7eMKeBYzWajzZxsAffgDPOPUktf ElUXULhnsJQ/fdWnnSjPjw8R+1B5HRsJCCjYIpqqrHHVBtGSAfUlhr9HgHVMeA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1769645008; a=rsa-sha256; cv=none; b=Rlj1JfJiiasrYqHoIPPiKHo3CJxquaAr+mbjhOdo8ebgZQRNidZE5hmT5GZ7PeZbZDn3FY 3mddKTwPDKQ7FtbJvBiv5BZBkYjKWq9NwBYqJPEqToR+QpJSlcB7TeYO6Bayf8B3AyNCxj L/bzZDxROycfgXznVEPadRzX85/Ii06gqrkaAXLNJro036Ietrmb28vzUIeU07Hika7rf+ s9U4Ayju1FoAk9wyL2ECdVmAMyRVuV6RkfEl6lBiOli57uBqB/lRY92cHs+/PxzYDqLIas TUywv0HM95ZD4FUe8yp2vrpUy3lnZkbQ0IL8lTfpQB+8S2/QLygc0vixlZL0Bg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f1fVm2mK8zZN for ; Thu, 29 Jan 2026 00:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id df09 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 29 Jan 2026 00:03:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: John Baldwin Subject: git: 8a2b0aa31bea - stable/14 - ctl: Add CTL_IO_ASSERT wrapper macro List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8a2b0aa31beaaa01b33034551e6dbd5cd6dc9786 Auto-Submitted: auto-generated Date: Thu, 29 Jan 2026 00:03:28 +0000 Message-Id: <697aa3d0.df09.7093a749@gitrepo.freebsd.org> The branch stable/14 has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=8a2b0aa31beaaa01b33034551e6dbd5cd6dc9786 commit 8a2b0aa31beaaa01b33034551e6dbd5cd6dc9786 Author: John Baldwin AuthorDate: 2024-05-02 23:30:44 +0000 Commit: John Baldwin CommitDate: 2026-01-29 00:01:15 +0000 ctl: Add CTL_IO_ASSERT wrapper macro Currently, this pattern is commonly used to assert that a union ctl_io is a SCSI request. In the future it will be used to assert other types. Suggested by: imp Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D44844 (cherry picked from commit ac7a514e20f394ffed0126c0c356aa9107821880) --- sys/cam/ctl/ctl.c | 12 ++++-------- sys/cam/ctl/ctl_backend_block.c | 3 +-- sys/cam/ctl/ctl_io.h | 15 +++++++++++++++ sys/cam/ctl/scsi_ctl.c | 3 +-- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index 7f703b42e0b3..09c6b26f0414 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -5112,8 +5112,7 @@ ctl_config_move_done(union ctl_io *io, bool samethr) int retval; CTL_DEBUG_PRINT(("ctl_config_move_done\n")); - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); if (ctl_debug & CTL_DEBUG_CDB_DATA) ctl_data_print(io); @@ -10754,8 +10753,7 @@ static int ctl_get_lba_len(union ctl_io *io, uint64_t *lba, uint64_t *len) { - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); switch (io->scsiio.cdb[0]) { case COMPARE_AND_WRITE: { @@ -10935,8 +10933,7 @@ ctl_extent_check_unmap(union ctl_io *io, uint64_t lba2, uint64_t len2) uint64_t lba; uint32_t len; - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); /* If not UNMAP -- go other way. */ if (io->scsiio.cdb[0] != UNMAP) @@ -12517,8 +12514,7 @@ ctl_datamove_done_process(union ctl_io *io) struct bintime cur_bt; #endif - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); #ifdef CTL_TIME_IO getbinuptime(&cur_bt); diff --git a/sys/cam/ctl/ctl_backend_block.c b/sys/cam/ctl/ctl_backend_block.c index dd6511295dc4..a5ec2533f4d7 100644 --- a/sys/cam/ctl/ctl_backend_block.c +++ b/sys/cam/ctl/ctl_backend_block.c @@ -1820,8 +1820,7 @@ ctl_be_block_submit(union ctl_io *io) be_lun = (struct ctl_be_block_lun *)CTL_BACKEND_LUN(io); - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); PRIV(io)->len = 0; diff --git a/sys/cam/ctl/ctl_io.h b/sys/cam/ctl/ctl_io.h index aa7a9c35c876..62ac05713b47 100644 --- a/sys/cam/ctl/ctl_io.h +++ b/sys/cam/ctl/ctl_io.h @@ -592,6 +592,21 @@ union ctl_io { }; #ifdef _KERNEL +#define _CTL_IO_ASSERT_1(io, _1) \ + KASSERT((io)->io_hdr.io_type == CTL_IO_##_1, \ + ("%s: unexpected I/O type %x", __func__, (io)->io_hdr.io_type)) + +#define _CTL_IO_ASSERT_2(io, _1, _2) \ + KASSERT((io)->io_hdr.io_type == CTL_IO_##_1 || \ + (io)->io_hdr.io_type == CTL_IO_##_2, \ + ("%s: unexpected I/O type %x", __func__, (io)->io_hdr.io_type)) + +#define _CTL_IO_ASSERT_MACRO(io, _1, _2, NAME, ...) \ + NAME + +#define CTL_IO_ASSERT(...) \ + _CTL_IO_ASSERT_MACRO(__VA_ARGS__, _CTL_IO_ASSERT_2, \ + _CTL_IO_ASSERT_1)(__VA_ARGS__) union ctl_io *ctl_alloc_io(void *pool_ref); union ctl_io *ctl_alloc_io_nowait(void *pool_ref); diff --git a/sys/cam/ctl/scsi_ctl.c b/sys/cam/ctl/scsi_ctl.c index 590631fc4326..8041ba9d0a76 100644 --- a/sys/cam/ctl/scsi_ctl.c +++ b/sys/cam/ctl/scsi_ctl.c @@ -1909,8 +1909,7 @@ ctlfe_datamove(union ctl_io *io) struct cam_periph *periph; struct ctlfe_lun_softc *softc; - KASSERT(io->io_hdr.io_type == CTL_IO_SCSI, - ("%s: unexpected I/O type %x", __func__, io->io_hdr.io_type)); + CTL_IO_ASSERT(io, SCSI); io->scsiio.ext_data_filled = 0; ccb = PRIV_CCB(io);