qemu-e2k/hw/nvme
Klaus Jensen 433c71e494 hw/nvme: fix aio cancel in format
There are several bugs in the async cancel code for the Format command.

Firstly, cancelling a format operation neglects to set iocb->ret as well
as clearing the iocb->aiocb after cancelling the underlying aiocb which
causes the aio callback to ignore the cancellation. Trivial fix.

Secondly, and worse, because the request is queued up for posting to the
CQ in a bottom half, if the cancellation is due to the submission queue
being deleted (which calls blk_aio_cancel), the req structure is
deallocated in nvme_del_sq prior to the bottom half being schedulued.

Fix this by simply removing the bottom half, there is no reason to defer
it anyway.

Fixes: 3bcf26d3d6 ("hw/nvme: reimplement format nvm to allow cancellation")
Reported-by: Jonathan Derrick <jonathan.derrick@linux.dev>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
2022-12-01 08:44:16 +01:00
..
ctrl.c hw/nvme: fix aio cancel in format 2022-12-01 08:44:16 +01:00
dif.c hw/nvme: add new command abort case 2022-06-03 21:48:24 +02:00
dif.h hw/nvme: 64-bit pi support 2022-03-03 09:30:21 +01:00
Kconfig
meson.build
ns.c hw/nvme: force nvme-ns param 'shared' to false if no nvme-subsys node 2022-07-15 10:40:33 +02:00
nvme.h hw/nvme: reenable cqe batching 2022-11-02 09:23:05 +01:00
subsys.c hw/nvme: Add support for Secondary Controller List 2022-06-23 23:24:28 +02:00
trace-events hw/nvme: Add trace events for shadow doorbell buffer 2022-07-15 10:40:33 +02:00
trace.h