aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2024-10-25 17:52:52 +0000
committerMark Johnston <markj@FreeBSD.org>2024-10-25 17:54:39 +0000
commit28c9b13b236d25512cfe4e1902411ff421a14b64 (patch)
treeedf8b3909e232361ffa2f705650496ca7e4911a8
parent1f6f247b3526abd4d5927684735012220aefe373 (diff)
downloadsrc-28c9b13b236d.tar.gz
src-28c9b13b236d.zip
virtio_p9fs: Simplify vt9p_req_wait() a bit
Remove an always-false check for whether the request has already completed before sleeping. Even if the request is complete, the response tag is updated while holding the channel lock, which is also held here. No functional change intended. Sponsored by: Klara, Inc.
-rw-r--r--sys/dev/virtio/p9fs/virtio_p9fs.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/sys/dev/virtio/p9fs/virtio_p9fs.c b/sys/dev/virtio/p9fs/virtio_p9fs.c
index dae38a507428..1fdeeaae2a96 100644
--- a/sys/dev/virtio/p9fs/virtio_p9fs.c
+++ b/sys/dev/virtio/p9fs/virtio_p9fs.c
@@ -110,20 +110,20 @@ SYSCTL_UINT(_vfs_9p, OID_AUTO, ackmaxidle, CTLFLAG_RW, &vt9p_ackmaxidle, 0,
static int
vt9p_req_wait(struct vt9p_softc *chan, struct p9_req_t *req)
{
- if (req->tc->tag != req->rc->tag) {
- if (msleep(req, VT9P_MTX(chan), 0, "chan lock",
- vt9p_ackmaxidle * hz)) {
- /*
- * Waited for 120s. No response from host.
- * Can't wait for ever..
- */
- P9_DEBUG(ERROR, "Timeout after waiting %u seconds"
- "for an ack from host\n", vt9p_ackmaxidle);
- return (EIO);
- }
- KASSERT(req->tc->tag == req->rc->tag,
- ("Spurious event on p9 req"));
+ KASSERT(req->tc->tag != req->rc->tag,
+ ("%s: request %p already completed", __func__, req));
+
+ if (msleep(req, VT9P_MTX(chan), 0, "chan lock", vt9p_ackmaxidle * hz)) {
+ /*
+ * Waited for 120s. No response from host.
+ * Can't wait for ever..
+ */
+ P9_DEBUG(ERROR, "Timeout after waiting %u seconds"
+ "for an ack from host\n", vt9p_ackmaxidle);
+ return (EIO);
}
+ KASSERT(req->tc->tag == req->rc->tag,
+ ("%s spurious event on request %p", __func__, req));
return (0);
}