mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 07:04:00 +08:00
scsi: core: take the DMA max mapping size into account
We need to limit the device's max_sectors to what the DMA mapping implementation can support. If not, we risk running out of swiotlb buffers easily. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
7ad388d8e4
commit
bdd17bdef7
@ -1784,6 +1784,8 @@ void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
|
|||||||
blk_queue_max_integrity_segments(q, shost->sg_prot_tablesize);
|
blk_queue_max_integrity_segments(q, shost->sg_prot_tablesize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shost->max_sectors = min_t(unsigned int, shost->max_sectors,
|
||||||
|
dma_max_mapping_size(dev) << SECTOR_SHIFT);
|
||||||
blk_queue_max_hw_sectors(q, shost->max_sectors);
|
blk_queue_max_hw_sectors(q, shost->max_sectors);
|
||||||
if (shost->unchecked_isa_dma)
|
if (shost->unchecked_isa_dma)
|
||||||
blk_queue_bounce_limit(q, BLK_BOUNCE_ISA);
|
blk_queue_bounce_limit(q, BLK_BOUNCE_ISA);
|
||||||
|
Loading…
Reference in New Issue
Block a user