From nobody Tue Oct 06 07:51:30 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 4hzT3Q4M0lz6cWcC for ; Tue, 06 Oct 2026 07:51:30 +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 "YR2" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4hzT3Q1xpXz4HH8 for ; Tue, 06 Oct 2026 07:51:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791273090; 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=SCj2Yr1N3+kopTH1WyK3P3ucgoHilyuMAsViq9WNtFI=; b=fdOpDlZE7zji3IX4MZ1/WPaNYJ2JE9O5ZwjJkED50tczmEvp24vAq8nKC4IZ68Ckcualn5 rDacPJTLw5zd+UQbHYTEIEDO2TBdu7kcQBvj011ksJNzj43OH/IolxO5B7mdddBBeNcf5g vEKztG5L5mZa/VRtS6H03uOdq3pHzZ6mpNKA7d92CEFgA5l7XgSEEcJ5mAYBKVYQSNTMxy t20cl+w8EppEIk07yHfDZ8WAdIa+lsxbFPGNzwlB3iAV69IV3zeUQqWdTAc5pA7f8+fyvz I4sNTxhsixVXmJXuTezSjKd7Y/DK298yDL7ORfkM8gO/7GWq7u3EEjGINzp0Rw== ARC-Seal: i=1; a=rsa-sha256; d=freebsd.org; s=dkim; cv=none; t=1791273090; b=IAfaSF2kEBWqOP1KEx3CwL8aEkOKQqf1dgPrv5Q9hyAuyROk+M5n306+HhNiae03VrDPg+ Wuam29yImplrkoei7v64/6zRcl6U0czeehW5cglgSjKEvvlrexwTGwuK9TE5vGxKkrO1e6 PQvyeh9fI4cF6HARglSRCyvxxb1qHLQBahNosTiYbGCaWklHiF8WaGP3hZC/sb1ptxIKnR 365c8IwWKv+JKXipXFgepzX6cC9BN1cERl4ZDmCt+pRY25xW6ALP2LAR5FfLOknI/TrNLf 7Ns2x0LUihvzH2zQdQSsqaEMplpOIZ+nt4q2fy9pUvuLAvrkorloja3YnmkqTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1791273090; 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=SCj2Yr1N3+kopTH1WyK3P3ucgoHilyuMAsViq9WNtFI=; b=NcQu5TWuUU7e+zK2BnA2pRmWa+PVTL60ruQC8coskxsxATLuFm5RHGQCEWccJ+pjOufaLh fdmGw9AiDu9ya8rHp8B+vVFtaZhDEZki3uPJLEIkslvj9wRKCHZpQPE4AeJ4YaiXsuNCAU xDFmYHFto+DKd2aFMO22eEwVYcuWJop89J91PrmM61OZMoS5a3m0LKcaap4PzO5YtDw8QO LPULfejFLYm4fqtp4byCqEa5y47hG/EeAhSjBAMevAI0961u/W/VphoT+sP9Gb/KGAL77R LNlTQFMWwbffkbrjQjd8DQGkRQ9iw1/LX3/ezhbIQWTeM4E0/cXVnK9qvVqzvA== 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 4hzT3Q0kpYzxKg for ; Tue, 06 Oct 2026 07:51:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18a43 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 06 Oct 2026 07:51:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jaeyoon Choi Subject: git: c8095bbcad86 - stable/15 - ufshci: build valid fake responses for manual completion 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 List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jaeyoon X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c8095bbcad867e6342ab1cd498318a7276a52484 Auto-Submitted: auto-generated Date: Tue, 06 Oct 2026 07:51:30 +0000 Message-Id: <6ac4a882.18a43.40300310@gitrepo.freebsd.org> The branch stable/15 has been updated by jaeyoon: URL: https://cgit.FreeBSD.org/src/commit/?id=c8095bbcad867e6342ab1cd498318a7276a52484 commit c8095bbcad867e6342ab1cd498318a7276a52484 Author: Jaeyoon Choi AuthorDate: 2026-08-27 05:02:10 +0000 Commit: Jaeyoon Choi CommitDate: 2026-10-06 06:28:05 +0000 ufshci: build valid fake responses for manual completion The manual completion wrote the fake response to the wrong descriptor for task management slots. It also left the task tag at zero, which tripped the task tag check under INVARIANTS. Write the fake response where the completion path reads it. Copy the task tag from the request. Reviewed by: imp (mentor) Sponsored by: Samsung Electronics Differential Revision: https://reviews.freebsd.org/D58946 (cherry picked from commit 746278a6ddc80a98001f875cd975283d7c99b960) --- sys/dev/ufshci/ufshci_req_queue.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/sys/dev/ufshci/ufshci_req_queue.c b/sys/dev/ufshci/ufshci_req_queue.c index 97eccd082176..2e13d244daef 100644 --- a/sys/dev/ufshci/ufshci_req_queue.c +++ b/sys/dev/ufshci/ufshci_req_queue.c @@ -168,16 +168,30 @@ static void ufshci_req_queue_manual_complete_tracker(struct ufshci_tracker *tr, uint8_t ocs, uint8_t rc) { - struct ufshci_utp_xfer_req_desc *desc; + struct ufshci_req_queue *req_queue = tr->req_queue; + struct ufshci_hw_queue *hwq = tr->hwq; struct ufshci_upiu_header *resp_header; - mtx_assert(&tr->hwq->qlock, MA_NOTOWNED); + mtx_assert(&hwq->qlock, MA_NOTOWNED); - resp_header = (struct ufshci_upiu_header *)tr->ucd->response_upiu; + /* + * Write the fake response where the completion path reads it. + */ + if (req_queue->is_task_mgmt) { + resp_header = (struct ufshci_upiu_header *) + hwq->utmrd[tr->slot_num].response_upiu; + hwq->utmrd[tr->slot_num].overall_command_status = ocs; + } else { + resp_header = (struct ufshci_upiu_header *) + tr->ucd->response_upiu; + hwq->utrd[tr->slot_num].overall_command_status = ocs; + } resp_header->response = rc; - - desc = &tr->hwq->utrd[tr->slot_num]; - desc->overall_command_status = ocs; + /* + * The hardware never wrote a response. Copy the task tag from + * the request so the completion checks pass. + */ + resp_header->task_tag = tr->req->request_upiu.header.task_tag; ufshci_req_queue_complete_tracker(tr); }