From: Klaus Jensen <[email protected]>
This series consists of patches that refactors dma read/write and adds a
number of address mapping helper functions.
v2:
* hw/block/nvme: add mapping helpers
- Add an assert in case of out of bounds array access. (Maxim)
* hw/block/nvme: remove redundant has_sg member
- Split the fix for the missing qemu_iov_destroy into a fresh patch
("hw/block/nvme: destroy request iov before reuse"). (Minwoo)
* hw/block/nvme: pass request along for tracing [DROPPED]
- Dropped the patch and replaced it with a simple patch that just adds
tracing to the nvme_map_prp function ("hw/block/nvme: add tracing to
nvme_map_prp"). (Minwoo)
* hw/block/nvme: add request mapping helper
- Changed the name from nvme_map to nvme_map_dptr. (Minwoo, Maxim)
* hw/block/nvme: add check for mdts
- Don't touch the documentaiton for the cmb_size_mb and max_ioqpairs
parameters in this patch. (Minwoo)
* hw/block/nvme: refactor NvmeRequest clearing [DROPPED]
- Keep NvmeRequest structure clearing as "before use". (Maxim)
* hw/block/nvme: add a namespace reference in NvmeRequest
* hw/block/nvme: remove NvmeCmd parameter
- Squash these two patches together into "hw/block/nvme: add ns/cmd
references in NvmeRequest".
* hw/block/nvme: consolidate qsg/iov clearing
- Move the qsg/iov destroys to a new nvme_req_exit function that is called
after the cqe has been posted.
* hw/block/nvme: remove explicit qsg/iov parameters
- New patch. THe nvme_map_prp() function doesn't require the qsg and iov
parameters since it can just get them from the passed NvmeRequest.
Based-on: <[email protected]>
Klaus Jensen (16):
hw/block/nvme: memset preallocated requests structures
hw/block/nvme: add mapping helpers
hw/block/nvme: replace dma_acct with blk_acct equivalent
hw/block/nvme: remove redundant has_sg member
hw/block/nvme: destroy request iov before reuse
hw/block/nvme: refactor dma read/write
hw/block/nvme: add tracing to nvme_map_prp
hw/block/nvme: add request mapping helper
hw/block/nvme: verify validity of prp lists in the cmb
hw/block/nvme: refactor request bounds checking
hw/block/nvme: add check for mdts
hw/block/nvme: be consistent about zeros vs zeroes
hw/block/nvme: add ns/cmd references in NvmeRequest
hw/block/nvme: consolidate qsg/iov clearing
hw/block/nvme: use preallocated qsg/iov in nvme_dma_prp
hw/block/nvme: remove explicit qsg/iov parameters
block/nvme.c | 4 +-
hw/block/nvme.c | 506 +++++++++++++++++++++++++++---------------
hw/block/nvme.h | 4 +-
hw/block/trace-events | 4 +
include/block/nvme.h | 4 +-
5 files changed, 340 insertions(+), 182 deletions(-)
--
2.27.0