From: Klaus Jensen <k.jen...@samsung.com> 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: <20200706061303.246057-1-...@irrelevant.dk> 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