Hi, This is v4 of my nvme patches.
This is mostly changes related to Beatas review (thanks again). Some of the comments led to some refactoring, so the changes trickled down through the series. That is why the backport diff show a lot of changes. I dropped 'nvme: allow completion queues in the cmb' from the series as it is not well tested. And there are no real users for this right now. p2p might use it, but the support can be added if/when needed. I ran into some trace event names clashing with the nvme block driver, so I have included a patch that changes all trace events to use the `nvme_dev` prefix instead. I split 'nvme: add support for the get log page command' up to move adding of the temperature threshold feature to its own commit. Happy holidays everyone! git-backport-diff -S -n -r upstream/master.. -u for-upstream/nvme/master/v3 [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/24:[down] 'nvme: rename trace events to nvme_dev' 002/24:[----] [-C] 'nvme: remove superfluous breaks' 003/24:[0006] [FC] 'nvme: move device parameters to separate struct' 004/24:[down] 'nvme: add missing fields in the identify data structures' 005/24:[0006] [FC] 'nvme: populate the mandatory subnqn and ver fields' 006/24:[down] 'nvme: refactor nvme_addr_read' 007/24:[0012] [FC] 'nvme: add support for the abort command' 008/24:[0006] [FC] 'nvme: refactor device realization' 009/24:[down] 'nvme: add temperature threshold feature' 010/24:[0070] [FC] 'nvme: add support for the get log page command' 011/24:[0177] [FC] 'nvme: add support for the asynchronous event request command' 012/24:[0017] [FC] 'nvme: add missing mandatory features' 013/24:[down] 'nvme: additional tracing' 014/24:[down] 'nvme: make sure ncqr and nsqr is valid' 015/24:[down] 'nvme: bump supported specification to 1.3' 016/24:[0233] [FC] 'nvme: refactor prp mapping' 017/24:[0464] [FC] 'nvme: allow multiple aios per command' 018/24:[----] [--] 'pci: pass along the return value of dma_memory_rw' 019/24:[0058] [FC] 'nvme: handle dma errors' 020/24:[0315] [FC] 'nvme: add support for scatter gather lists' 021/24:[0140] [FC] 'nvme: support multiple namespaces' 022/24:[----] [--] 'nvme: bump controller pci device id' 023/24:[0110] [FC] 'nvme: remove redundant NvmeCmd pointer parameter' 024/24:[0004] [FC] 'nvme: make lba data size configurable' Klaus Jensen (24): 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 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 nvme: bump controller pci device id nvme: remove redundant NvmeCmd pointer parameter nvme: make lba data size configurable block/nvme.c | 18 +- hw/block/Makefile.objs | 2 +- hw/block/nvme-ns.c | 158 ++++ hw/block/nvme-ns.h | 62 ++ hw/block/nvme.c | 1983 ++++++++++++++++++++++++++++++++-------- hw/block/nvme.h | 191 +++- hw/block/trace-events | 203 ++-- include/block/nvme.h | 143 ++- include/hw/pci/pci.h | 3 +- 9 files changed, 2231 insertions(+), 532 deletions(-) create mode 100644 hw/block/nvme-ns.c create mode 100644 hw/block/nvme-ns.h -- 2.24.1