From nobody Tue Aug 9 20:01:20 2022 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 4M2P8c6KVXz3j88v; Tue, 9 Aug 2022 20:01:20 +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 4M2P8c5sGJz3m8W; Tue, 9 Aug 2022 20:01:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660075280; 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=Ry7g/phEYX4r+xhuTk5+6WNDaBvMhvroPcqV6ETleYg=; b=KPWIcr56VFyj/7Rm95tM+JJeN30luwR/wR36Hgd3jrp8LAQ3+TdQhLe2uxrFrYdmjCVu8N qN21P3B8PU88TJh6gSimdqA+OaQU0rZlUiYr2YHugcpcKUHqIlkbFli+FAYwPUHCR/5oz4 foophVS4262XQXaDPRcjCk19QPk9mDpR+vqaYZsjzifomYalS702M6H22pZLh4gHej5W3L Yds76CfVJzsPnXhKwFGBk5M31C2mYrRHc6Rpxjj6mT+sfXVUfpqsTDrPNOCtF1awv9T9dz QU51RF+eEj9e2BhAJnP27fu9DkfsDYQk3tEO9w6CtwGDrhNlT8wCQFUsrT8OHg== 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 4M2P8c4wZGzkpF; Tue, 9 Aug 2022 20:01:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 279K1KW5031307; Tue, 9 Aug 2022 20:01:20 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 279K1K8D031306; Tue, 9 Aug 2022 20:01:20 GMT (envelope-from git) Date: Tue, 9 Aug 2022 20:01:20 GMT Message-Id: <202208092001.279K1K8D031306@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: db8082886fd8 - releng/13.1 - CAM: Keep periph_links when restoring CCB in camperiphdone(). 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/releng/13.1 X-Git-Reftype: branch X-Git-Commit: db8082886fd8cfbd8a3d533bb530ad392d0c4d85 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1660075280; 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=Ry7g/phEYX4r+xhuTk5+6WNDaBvMhvroPcqV6ETleYg=; b=Qx8ukIWvyuRoLQSwE0/sFvVU8dMsCg3key9+YIKihnVVUsd8kTi8S7dntw5WxMv82Vb1rI 0oqfXH6l6rTf45uhcvxaok8YYa8pzgHdEWVE6BHdpklaLVJsD3fTpb1+w0gK19vePLUny3 R6beBRFNgB4RZd2bGeeVotwtuL2K8/QQiF1AB6jO6Pf3DwJ+5jdEr0HcdKWcEWZNSystUC /G3bNE5xYSqXCwjmqTkXpq52DHRZuaQZRcUaoWLidjWQiuTxa7Ki5H3mquupVHvxbGd+N8 Im36MV+sULLB3ZcX8gSwWuTz3RZUT6wRXlxTei2Q+FcLS76VSFJYH/JpSHyIFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1660075280; a=rsa-sha256; cv=none; b=eZpwdb2s8iKoLwF56TVjVKT+BU7nl6IvyD3aQXi4Mj7wtal632inuPytpzjWD72H37QzbZ lt3yz8MSqQ10jb6pCVheLtS5HcciwU1TqsKNJJywP8yIKmosQTyJY63g7TYCqPfvozrKUu 90+OYRmVt2qh0825sYyK73/jJmbVXJWAASH4J71lNVl3x4RXeNuwvs42u7yhJAqYvUJG3f +OkubHGqRl/lcXhun19WfR+2nAj7STRNcWb/CvDWIQxkMpmS8+oyYRAKpWGyCH6RFVKEsf lIk4hPIOiRSebflN6bR1At2Eyf00BwCdgnmoXQqwH6+fW04kmxZ3CuHRuOKGZg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch releng/13.1 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=db8082886fd8cfbd8a3d533bb530ad392d0c4d85 commit db8082886fd8cfbd8a3d533bb530ad392d0c4d85 Author: Alexander Motin AuthorDate: 2022-04-28 01:39:50 +0000 Commit: Mark Johnston CommitDate: 2022-07-25 21:00:19 +0000 CAM: Keep periph_links when restoring CCB in camperiphdone(). While recovery command executed, some other commands from the periph may complete, that may affect periph_links of this CCB. So restoring original CCB we must keep current periph_links as more up to date. I've found this triggering assertions with debug kernel and suspect some memory corruptions otherwise when spun down disk receives two or sometimes more concurrent requests. Approved by: so Security: FreeBSD-EN22:17.cam MFC after: 1 week Sponsored by: iXsystems, Inc. (cherry picked from commit 404f001161b975164d8b52d9f404d07ac7584027) (cherry picked from commit 84849cfd1dc016917402511bc5a55d3d7317ce39) --- sys/cam/cam_periph.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c index d08adca0ea1c..9a4f4a2b160b 100644 --- a/sys/cam/cam_periph.c +++ b/sys/cam/cam_periph.c @@ -1421,6 +1421,7 @@ camperiphdone(struct cam_periph *periph, union ccb *done_ccb) * and the result will be the final one returned to the CCB owher. */ saved_ccb = (union ccb *)done_ccb->ccb_h.saved_ccb_ptr; + saved_ccb->ccb_h.periph_links = done_ccb->ccb_h.periph_links; bcopy(saved_ccb, done_ccb, sizeof(*done_ccb)); xpt_free_ccb(saved_ccb); if (done_ccb->ccb_h.cbfcnp != camperiphdone)