Hi,
Changes since v4 - Changed vendor and device id to use a Red Hat allocated one. For backwards compatibility add the 'x-use-intel-id' nvme device parameter. This is off by default but is added as a machine compat property to be true for machine types <= 4.2. - SGL mapping code has been refactored. Comments specific to Beata's review: - [PATCH v4 19/24] nvme: handle dma errors I ended up not including any specific code for resetting the device when dma transfers fail for too long. If running I/O and then disabling bus master, the OS will (should) eventually reset the device and reenable bus mastering (this is the behavior in Linux at least). The device can maybe set CFS ("Controller Fail Status") in the BAR, but I have not explored that for now. - [PATCH v4 17/24] nvme: allow multiple aios per command I forgot to give an answer for your comment on the correctness of: if (unlikely((slba + nlb) > nsze)) { `slba` *is* the "address" of the first logical block, but it is in terms of logical blocks, so the condition should be correct. (and at this point `nlb` is no longer a 0's based value) Klaus Jensen (26): nvme: rename trace events to nvme_dev nvme: remove superfluous breaks nvme: move device parameters to separate struct nvme: add missing fields in the identify data structures nvme: populate the mandatory subnqn and ver fields nvme: refactor nvme_addr_read nvme: add support for the abort command nvme: refactor device realization nvme: add temperature threshold feature nvme: add support for the get log page command nvme: add support for the asynchronous event request command nvme: add missing mandatory features nvme: additional tracing nvme: make sure ncqr and nsqr is valid nvme: bump supported specification to 1.3 nvme: refactor prp mapping nvme: allow multiple aios per command nvme: use preallocated qsg/iov in nvme_dma_prp pci: pass along the return value of dma_memory_rw nvme: handle dma errors nvme: add support for scatter gather lists nvme: support multiple namespaces pci: allocate pci id for nvme nvme: change controller pci id nvme: remove redundant NvmeCmd pointer parameter nvme: make lba data size configurable MAINTAINERS | 1 + block/nvme.c | 18 +- docs/specs/nvme.txt | 10 + docs/specs/pci-ids.txt | 1 + hw/block/Makefile.objs | 2 +- hw/block/nvme-ns.c | 158 ++++ hw/block/nvme-ns.h | 62 ++ hw/block/nvme.c | 2012 +++++++++++++++++++++++++++++++--------- hw/block/nvme.h | 201 +++- hw/block/trace-events | 204 ++-- hw/core/machine.c | 1 + include/block/nvme.h | 143 ++- include/hw/pci/pci.h | 4 +- 13 files changed, 2266 insertions(+), 551 deletions(-) create mode 100644 docs/specs/nvme.txt create mode 100644 hw/block/nvme-ns.c create mode 100644 hw/block/nvme-ns.h -- 2.25.0