From nobody Wed Nov 29 01:55:36 2023 X-Original-To: dev-commits-src-all@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 4Sg2Th2qMkz52tWh; Wed, 29 Nov 2023 01:55:36 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Sg2Th20wSz4DT9; Wed, 29 Nov 2023 01:55:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701222936; 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=6Hq26ArkgTIzYNdu4OlmHcfXAuc0Md5yjiRRGpCW1hA=; b=OFsMHbSldqeo+AcnhZX05eblR6w44jLRf7oQzxt65pqdHf40MVvDOG1pnlHbceGHlp/gTk 7lnjzpfY9UQ2cd2gIFOCK3fEW7rVGf06lUdyxsWL+NTW5olhOoa1hJQMAgYrh8FnRRNMmL K6zWMZhheDY8FIU3k+MGHOBwjD8We0EoOuW+ObCedMowjo4ixH4QCo5g4O1BYcntsO09KP YvZtlLxOjEMGJSiOVAIARPL/Kb8rNN3mpYwW4zkH7y0O5Hq+aI5HO9gR9PTcWURl4gdAoU OhPicgBbWgic9KTNf4VwXlN1Etr8Boi8w10jptKPj2Vw//Jl5d1gjvCuAHU+KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1701222936; 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=6Hq26ArkgTIzYNdu4OlmHcfXAuc0Md5yjiRRGpCW1hA=; b=Zex/OmYrJecI9hO0WKv2xXDbjDNcygtisG+A3e5iBRLcQu+F0l73yKi71Hej96ZziT98oL v1i6vCoTa8cUF+07kx4NpVG5zkOA6+zD63FSM+7Ov3SiTu+zlpbbrplG/GMtODcmGYXJO3 mKwYoI+psWkUVKkT+jFEyBAcB5wT8QJciFFj7HQvGghE3D/dYuA1dZu9KI4sNin1M9quze usr/vClMJmI7d6WGOFmAoGw6sru/KsYqXenDnybIfB2m7N87bY7p6WBHf+tqAblLBA/RB7 gxa/wB8noms6Fe9n0+AKuu2a6aCMJBUe5e0wctVObogmAAuwglGd5x0adYnXVg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1701222936; a=rsa-sha256; cv=none; b=TX0mR0U4DY0+d/1QA5+R+WPKtTPkj8l6MKT8h4hidHmZ4dn1xmNDliba3FLnUDZ1JeS4Jv H8M08RYgf2An0Zi+yc+NnVqbZOei79myvlNgyqfANU0v27RNhSgIB8DmVJo4bWWomOHgeK JYLkhmz0qUfdfjfieEGHxfMKN6seRQsPn3slTA/cLcrdPvInGjutB/duuUJ6zlxSxgpS9n FwWdp/RpthTJ9dLvN2dkX6snfNorFrKKa1YWawLOaB975s/snY6CwDkq57JA4I/CyXqBMi OZ8rD+KKKbf5DEUbpyG5lmOFrm/DFDJePn8z5Ks4NXdlmeIrI+HfjeOgR690hQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (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 did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Sg2Th0m6qzmwG; Wed, 29 Nov 2023 01:55:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3AT1ta0F064413; Wed, 29 Nov 2023 01:55:36 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3AT1taVg064410; Wed, 29 Nov 2023 01:55:36 GMT (envelope-from git) Date: Wed, 29 Nov 2023 01:55:36 GMT Message-Id: <202311290155.3AT1taVg064410@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: cf8c23230aab - main - mpi3mr: Cleaup setting of status in processing scsiio requests List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: cf8c23230aabd30aa9251975dbe705da559a2d02 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=cf8c23230aabd30aa9251975dbe705da559a2d02 commit cf8c23230aabd30aa9251975dbe705da559a2d02 Author: Warner Losh AuthorDate: 2023-11-29 01:49:30 +0000 Commit: Warner Losh CommitDate: 2023-11-29 01:49:30 +0000 mpi3mr: Cleaup setting of status in processing scsiio requests More uniformly use mpi3mr_set_ccbstatus in mpi3mr_action_scsiio. The routine mostly used it, but also has setting of status by hand. In those cases where we want to error out the request, use this routine. As part of this, move setting CAM_SIM_QUEUED later in the function to when we're sure it's been queued. Remove the places we clear it before this. Sponsored by: Netflix Reviewed by: mav, jhb Differential Revision: https://reviews.freebsd.org/D42542 --- sys/dev/mpi3mr/mpi3mr_cam.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sys/dev/mpi3mr/mpi3mr_cam.c b/sys/dev/mpi3mr/mpi3mr_cam.c index 691be827cf89..4a525a222577 100644 --- a/sys/dev/mpi3mr/mpi3mr_cam.c +++ b/sys/dev/mpi3mr/mpi3mr_cam.c @@ -1024,7 +1024,7 @@ mpi3mr_action_scsiio(struct mpi3mr_cam_softc *cam_sc, union ccb *ccb) cam_sc->flags |= MPI3MRSAS_QUEUE_FROZEN; } ccb->ccb_h.status &= ~CAM_SIM_QUEUED; - ccb->ccb_h.status |= CAM_REQUEUE_REQ; + mpi3mr_set_ccbstatus(ccb, CAM_REQUEUE_REQ); xpt_done(ccb); return; } @@ -1098,39 +1098,38 @@ mpi3mr_action_scsiio(struct mpi3mr_cam_softc *cam_sc, union ccb *ccb) mpi3mr_dprint(sc, MPI3MR_TRACE, "[QID:%d]: func: %s line:%d CDB: 0x%x targetid: %x SMID: 0x%x\n", (queue_idx + 1), __func__, __LINE__, scsi_opcode, csio->ccb_h.target_id, cm->hosttag); - ccb->ccb_h.status |= CAM_SIM_QUEUED; - switch ((ccb->ccb_h.flags & CAM_DATA_MASK)) { case CAM_DATA_PADDR: case CAM_DATA_SG_PADDR: device_printf(sc->mpi3mr_dev, "%s: physical addresses not supported\n", __func__); mpi3mr_release_command(cm); - ccb->ccb_h.status = CAM_REQ_INVALID; - ccb->ccb_h.status &= ~CAM_SIM_QUEUED; + mpi3mr_set_ccbstatus(ccb, CAM_REQ_INVALID); xpt_done(ccb); return; case CAM_DATA_SG: device_printf(sc->mpi3mr_dev, "%s: scatter gather is not supported\n", __func__); mpi3mr_release_command(cm); - ccb->ccb_h.status = CAM_REQ_INVALID; + mpi3mr_set_ccbstatus(ccb, CAM_REQ_INVALID); xpt_done(ccb); return; case CAM_DATA_VADDR: case CAM_DATA_BIO: if (csio->dxfer_len > (MPI3MR_SG_DEPTH * MPI3MR_4K_PGSZ)) { + mpi3mr_set_ccbstatus(ccb, CAM_REQ_TOO_BIG); mpi3mr_release_command(cm); - ccb->ccb_h.status = CAM_REQ_TOO_BIG; xpt_done(ccb); return; } + ccb->ccb_h.status |= CAM_SIM_QUEUED; cm->length = csio->dxfer_len; if (cm->length) cm->data = csio->data_ptr; break; default: - ccb->ccb_h.status = CAM_REQ_INVALID; + mpi3mr_release_command(cm); + mpi3mr_set_ccbstatus(ccb, CAM_REQ_INVALID); xpt_done(ccb); return; }