Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 May 2024 22:38:28 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 5a178b831a9f - main - nvme: Add locking asserts
Message-ID:  <202405132238.44DMcS5X058182@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=5a178b831a9fe8c51e406355f0164d01627cf1f4

commit 5a178b831a9fe8c51e406355f0164d01627cf1f4
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2024-05-13 20:53:48 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2024-05-13 22:14:03 +0000

    nvme: Add locking asserts
    
    nvme_qpair_complete_tracker and nvme_qpair_manual_complete_tracker have
    to be called without the qpair lock, so assert its unowned.
    
    Sponsored by:           Netflix
---
 sys/dev/nvme/nvme_qpair.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c
index 62d27e439180..b11bdc44dc40 100644
--- a/sys/dev/nvme/nvme_qpair.c
+++ b/sys/dev/nvme/nvme_qpair.c
@@ -414,10 +414,12 @@ static void
 nvme_qpair_complete_tracker(struct nvme_tracker *tr,
     struct nvme_completion *cpl, error_print_t print_on_error)
 {
-	struct nvme_qpair * qpair = tr->qpair;
+	struct nvme_qpair	*qpair = tr->qpair;
 	struct nvme_request	*req;
 	bool			retry, error, retriable;
 
+	mtx_assert(&qpair->lock, MA_NOTOWNED);
+
 	req = tr->req;
 	error = nvme_completion_is_error(cpl);
 	retriable = nvme_completion_is_retry(cpl);
@@ -486,10 +488,11 @@ nvme_qpair_manual_complete_tracker(
     error_print_t print_on_error)
 {
 	struct nvme_completion	cpl;
+	struct nvme_qpair * qpair = tr->qpair;
 
-	memset(&cpl, 0, sizeof(cpl));
+	mtx_assert(&qpair->lock, MA_NOTOWNED);
 
-	struct nvme_qpair * qpair = tr->qpair;
+	memset(&cpl, 0, sizeof(cpl));
 
 	cpl.sqid = qpair->id;
 	cpl.cid = tr->cid;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202405132238.44DMcS5X058182>