|
@@ -2148,11 +2148,13 @@ void __scsi_init_queue(struct Scsi_Host *shost, struct request_queue *q)
|
|
|
q->limits.cluster = 0;
|
|
|
|
|
|
/*
|
|
|
- * set a reasonable default alignment on word boundaries: the
|
|
|
- * host and device may alter it using
|
|
|
- * blk_queue_update_dma_alignment() later.
|
|
|
+ * Set a reasonable default alignment: The larger of 32-byte (dword),
|
|
|
+ * which is a common minimum for HBAs, and the minimum DMA alignment,
|
|
|
+ * which is set by the platform.
|
|
|
+ *
|
|
|
+ * Devices that require a bigger alignment can increase it later.
|
|
|
*/
|
|
|
- blk_queue_dma_alignment(q, 0x03);
|
|
|
+ blk_queue_dma_alignment(q, max(4, dma_get_cache_alignment()) - 1);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(__scsi_init_queue);
|
|
|
|