diff --git a/block/blk-mq-dma.c b/block/blk-mq-dma.c index 88fd9cbc951f..e0e7a18790b5 100644 --- a/block/blk-mq-dma.c +++ b/block/blk-mq-dma.c @@ -181,6 +181,8 @@ static bool blk_dma_map_iter_start(struct request *req, struct device *dma_dev, switch (pci_p2pdma_state(&iter->p2pdma, dma_dev, phys_to_page(vec.paddr))) { case PCI_P2PDMA_MAP_BUS_ADDR: + /* don't leave the state of an earlier mapping to the caller */ + memset(state, 0, sizeof(*state)); return blk_dma_map_bus(iter, &vec); case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE: /*