diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
index f69b77cbf538..a3ae6345473b 100644
--- a/drivers/scsi/hosts.c
+++ b/drivers/scsi/hosts.c
@@ -225,6 +225,11 @@ int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
shost->cmd_per_lun = min_t(int, shost->cmd_per_lun,
shost->can_queue);
+ if (dma_dev->dma_mask) {Nit: you could drop the curly brackets here.
+ shost->max_sectors = min_t(unsigned int, shost->max_sectors,
+ dma_opt_mapping_size(dma_dev) >> SECTOR_SHIFT);
+ }
+
error = scsi_init_sense_cache(shost);
if (error)
goto fail;