diff options
Diffstat (limited to 'drivers/ata/libata-scsi.c')
-rw-r--r-- | drivers/ata/libata-scsi.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index 3fd08201bef4..c02c490122dc 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -839,7 +839,14 @@ static void ata_scsi_dev_config(struct scsi_device *sdev, | |||
839 | if (dev->class == ATA_DEV_ATAPI) { | 839 | if (dev->class == ATA_DEV_ATAPI) { |
840 | struct request_queue *q = sdev->request_queue; | 840 | struct request_queue *q = sdev->request_queue; |
841 | blk_queue_max_hw_segments(q, q->max_hw_segments - 1); | 841 | blk_queue_max_hw_segments(q, q->max_hw_segments - 1); |
842 | } | 842 | |
843 | /* set the min alignment */ | ||
844 | blk_queue_update_dma_alignment(sdev->request_queue, | ||
845 | ATA_DMA_PAD_SZ - 1); | ||
846 | } else | ||
847 | /* ATA devices must be sector aligned */ | ||
848 | blk_queue_update_dma_alignment(sdev->request_queue, | ||
849 | ATA_SECT_SIZE - 1); | ||
843 | 850 | ||
844 | if (dev->class == ATA_DEV_ATA) | 851 | if (dev->class == ATA_DEV_ATA) |
845 | sdev->manage_start_stop = 1; | 852 | sdev->manage_start_stop = 1; |
@@ -878,7 +885,7 @@ int ata_scsi_slave_config(struct scsi_device *sdev) | |||
878 | if (dev) | 885 | if (dev) |
879 | ata_scsi_dev_config(sdev, dev); | 886 | ata_scsi_dev_config(sdev, dev); |
880 | 887 | ||
881 | return 0; /* scsi layer doesn't check return value, sigh */ | 888 | return 0; |
882 | } | 889 | } |
883 | 890 | ||
884 | /** | 891 | /** |