|
@@ -81,6 +81,16 @@ static int slave_alloc (struct scsi_device *sdev)
|
|
|
*/
|
|
|
sdev->inquiry_len = 36;
|
|
|
|
|
|
+ /* Scatter-gather buffers (all but the last) must have a length
|
|
|
+ * divisible by the bulk maxpacket size. Otherwise a data packet
|
|
|
+ * would end up being short, causing a premature end to the data
|
|
|
+ * transfer. Since high-speed bulk pipes have a maxpacket size
|
|
|
+ * of 512, we'll use that as the scsi device queue's DMA alignment
|
|
|
+ * mask. Guaranteeing proper alignment of the first buffer will
|
|
|
+ * have the desired effect because, except at the beginning and
|
|
|
+ * the end, scatter-gather buffers follow page boundaries. */
|
|
|
+ blk_queue_update_dma_alignment(sdev->request_queue, (512 - 1));
|
|
|
+
|
|
|
/*
|
|
|
* The UFI spec treates the Peripheral Qualifier bits in an
|
|
|
* INQUIRY result as reserved and requires devices to set them
|
|
@@ -100,16 +110,6 @@ static int slave_configure(struct scsi_device *sdev)
|
|
|
{
|
|
|
struct us_data *us = host_to_us(sdev->host);
|
|
|
|
|
|
- /* Scatter-gather buffers (all but the last) must have a length
|
|
|
- * divisible by the bulk maxpacket size. Otherwise a data packet
|
|
|
- * would end up being short, causing a premature end to the data
|
|
|
- * transfer. Since high-speed bulk pipes have a maxpacket size
|
|
|
- * of 512, we'll use that as the scsi device queue's DMA alignment
|
|
|
- * mask. Guaranteeing proper alignment of the first buffer will
|
|
|
- * have the desired effect because, except at the beginning and
|
|
|
- * the end, scatter-gather buffers follow page boundaries. */
|
|
|
- blk_queue_dma_alignment(sdev->request_queue, (512 - 1));
|
|
|
-
|
|
|
/* Many devices have trouble transfering more than 32KB at a time,
|
|
|
* while others have trouble with more than 64K. At this time we
|
|
|
* are limiting both to 32K (64 sectores).
|