[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/13] nvme: call blk_drain in NVMe reset code to avo
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 09/13] nvme: call blk_drain in NVMe reset code to avoid lockups |
Date: |
Thu, 22 Nov 2018 17:54:13 +0100 |
From: Igor Druzhinin <address@hidden>
When blk_flush called in NVMe reset path S/C queues are already freed
which means that re-entering AIO handling loop having some IO requests
unfinished will lockup or crash as their SG structures being potentially
reused. Call blk_drain before freeing the queues to avoid this nasty
scenario.
Signed-off-by: Igor Druzhinin <address@hidden>
Acked-by: Paolo Bonzini <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
hw/block/nvme.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index d0226e7fdc..28d284346d 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -797,6 +797,8 @@ static void nvme_clear_ctrl(NvmeCtrl *n)
{
int i;
+ blk_drain(n->conf.blk);
+
for (i = 0; i < n->num_queues; i++) {
if (n->sq[i] != NULL) {
nvme_free_sq(n->sq[i], n);
--
2.19.1
- [Qemu-devel] [PULL 00/13] Block layer patches, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 02/13] iotests: Replace assertEquals() with assertEqual(), Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 03/13] iotests: Skip 233 if certtool not installed, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 04/13] qemu-img: Fix typo, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 01/13] iotests: Replace time.clock() with Timeout, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 05/13] qemu-img: Fix leak, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 07/13] block: Fix update of BDRV_O_AUTO_RDONLY in update_flags_from_options(), Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 06/13] scsi-disk: Fix crash if underlying host file or disk returns error, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 08/13] iotests: fix nbd test 233 to work correctly with raw images, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 09/13] nvme: call blk_drain in NVMe reset code to avoid lockups,
Kevin Wolf <=
- [Qemu-devel] [PULL 11/13] Revert "nvme: fix oob access issue(CVE-2018-16847)", Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 10/13] nvme: fix out-of-bounds access to the CMB, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 12/13] nvme: fix bug with PCI IRQ pins on teardown, Kevin Wolf, 2018/11/22
- [Qemu-devel] [PULL 13/13] iotests: Enhance 223 to cover multiple bitmap granularities, Kevin Wolf, 2018/11/22
- Re: [Qemu-devel] [PULL 00/13] Block layer patches, Peter Maydell, 2018/11/22
- Re: [Qemu-devel] [PULL 00/13] Block layer patches, no-reply, 2018/11/23