aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2023-07-17 15:49:27 +0100
committerRichard Henderson <richard.henderson@linaro.org>2023-07-17 15:49:27 +0100
commit361d5397355276e3007825cc17217c1e4d4320f7 (patch)
tree12dde743ee08fbce4eef617fb01367d9b9be3dc9
parent08572022e5b743f7f52ed99cd1f4e50f77ff0038 (diff)
parent66547f416a61e0cb711dc76821890242432ba193 (diff)
downloadqemu-361d5397355276e3007825cc17217c1e4d4320f7.zip
qemu-361d5397355276e3007825cc17217c1e4d4320f7.tar.gz
qemu-361d5397355276e3007825cc17217c1e4d4320f7.tar.bz2
Merge tag 'block-pull-request' of https://gitlab.com/stefanha/qemu into staging
Pull request Fix the hang in the nvme:// block driver during startup. # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCAAdFiEEhpWov9P5fNqsNXdanKSrs4Grc8gFAmS1QFoACgkQnKSrs4Gr # c8i1KQgAqTW/rH+Mq9gC+MabLKXL8BW3KAp/lJqcaTrWRX+9O968E5RjF8fk5KzY # CZGKGcFd2+r6poUaRrp2CcnDe9AU9r3NBfQIoVAnyWL8fwRBl5ERPZ3q6dmW63vX # K8ckI9c0tHUNRuKpWiFCFlcEh7GGgl2pZhY1U50J1iaFTtvmDKl4Ls/2GqVUSiSY # 4HbJ99qAYyZ/EUzbFhDPq4XFneqJzU0Gu4uL3bbVY+KlmGOp36W8wwPaKaD6yXWv # mnv4DkoO3qlZ8tGegwk4SwePWN2Coec+KssMgYR1GWv0pbF8G4sX+UTeQin56Xny # EY3lJy2z793lMjFVMDd7N8+uKAczsQ== # =xvCy # -----END PGP SIGNATURE----- # gpg: Signature made Mon 17 Jul 2023 02:21:30 PM BST # gpg: using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" [full] # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" [full] * tag 'block-pull-request' of https://gitlab.com/stefanha/qemu: block/nvme: invoke blk_io_plug_call() outside q->lock Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
-rw-r--r--block/nvme.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/block/nvme.c b/block/nvme.c
index 7ca85bc..b6e95f0 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -501,8 +501,9 @@ static void nvme_submit_command(NVMeQueuePair *q, NVMeRequest *req,
q->sq.tail * NVME_SQ_ENTRY_BYTES, cmd, sizeof(*cmd));
q->sq.tail = (q->sq.tail + 1) % NVME_QUEUE_SIZE;
q->need_kick++;
- blk_io_plug_call(nvme_unplug_fn, q);
qemu_mutex_unlock(&q->lock);
+
+ blk_io_plug_call(nvme_unplug_fn, q);
}
static void nvme_admin_cmd_sync_cb(void *opaque, int ret)