From: Keith Busch <kbusch@xxxxxxxxxx> Previous version: https://lore.kernel.org/linux-nvme/20250720184040.2402790-1-kbusch@xxxxxxxx/ Changes from v2: - introduce the "blk_map_iter" type for the lower level's physical address mapping. - fixed missing "static inline" for stub functions - appened "is_" prefixes to bool types - nvme uses the MPTR method when it's a single entry, execpt for user commands, which will always use SGL when possible. This nicely unifies the setup and teardown for each, too. Keith Busch (7): blk-mq: introduce blk_map_iter blk-mq-dma: provide the bio_vec list being iterated blk-mq-dma: require unmap caller provide p2p map type blk-mq: remove REQ_P2PDMA flag blk-mq-dma: move common dma start code to a helper blk-mq-dma: add support for mapping integrity metadata nvme: convert metadata mapping to dma iter block/bio.c | 2 +- block/blk-mq-dma.c | 226 ++++++++++++++++++++-------------- drivers/nvme/host/pci.c | 181 +++++++++++++-------------- include/linux/blk-integrity.h | 17 +++ include/linux/blk-mq-dma.h | 16 ++- include/linux/blk_types.h | 1 - 6 files changed, 253 insertions(+), 190 deletions(-) -- 2.47.3