mmc: also set max_segment_size in the device
authorChristoph Hellwig <hch@lst.de>
Wed, 5 Jun 2019 19:08:27 +0000 (21:08 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 5 Jun 2019 19:18:39 +0000 (13:18 -0600)
If we only set the max_segment_size on the queue an IOMMU merge might
create bigger segments again, so limit the IOMMU merges as well.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/mmc/core/queue.c

index b5b9c61..92900a0 100644 (file)
@@ -377,6 +377,8 @@ static void mmc_setup_queue(struct mmc_queue *mq, struct mmc_card *card)
        blk_queue_max_segment_size(mq->queue,
                        round_down(host->max_seg_size, block_size));
 
+       dma_set_max_seg_size(mmc_dev(host), queue_max_segment_size(mq->queue));
+
        INIT_WORK(&mq->recovery_work, mmc_mq_recovery_handler);
        INIT_WORK(&mq->complete_work, mmc_blk_mq_complete_work);