diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-05 15:44:48 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-05 15:44:48 -0500 |
commit | 18ce920a6eba05c0d55cdc95fbbadf7e4c4b457b (patch) | |
tree | c4a4a9a0455c00edf16689cf0252c82c52d518db /drivers/scsi/libata-scsi.c | |
parent | c4811b151b6584a668de8ae59eb71c4890b9ad94 (diff) | |
parent | 70d9d825e0a5a78ec1dacaaaf5c72ff5b0206fab (diff) |
Merge branch 'master'
Diffstat (limited to 'drivers/scsi/libata-scsi.c')
-rw-r--r-- | drivers/scsi/libata-scsi.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index 4f8a013a12f5..0dc5503633a3 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -355,10 +355,10 @@ struct ata_queued_cmd *ata_scsi_qc_new(struct ata_port *ap, | |||
355 | qc->scsidone = done; | 355 | qc->scsidone = done; |
356 | 356 | ||
357 | if (cmd->use_sg) { | 357 | if (cmd->use_sg) { |
358 | qc->sg = (struct scatterlist *) cmd->request_buffer; | 358 | qc->__sg = (struct scatterlist *) cmd->request_buffer; |
359 | qc->n_elem = cmd->use_sg; | 359 | qc->n_elem = cmd->use_sg; |
360 | } else { | 360 | } else { |
361 | qc->sg = &qc->sgent; | 361 | qc->__sg = &qc->sgent; |
362 | qc->n_elem = 1; | 362 | qc->n_elem = 1; |
363 | } | 363 | } |
364 | } else { | 364 | } else { |
@@ -702,6 +702,16 @@ int ata_scsi_slave_config(struct scsi_device *sdev) | |||
702 | */ | 702 | */ |
703 | blk_queue_max_sectors(sdev->request_queue, 2048); | 703 | blk_queue_max_sectors(sdev->request_queue, 2048); |
704 | } | 704 | } |
705 | |||
706 | /* | ||
707 | * SATA DMA transfers must be multiples of 4 byte, so | ||
708 | * we need to pad ATAPI transfers using an extra sg. | ||
709 | * Decrement max hw segments accordingly. | ||
710 | */ | ||
711 | if (dev->class == ATA_DEV_ATAPI) { | ||
712 | request_queue_t *q = sdev->request_queue; | ||
713 | blk_queue_max_hw_segments(q, q->max_hw_segments - 1); | ||
714 | } | ||
705 | } | 715 | } |
706 | 716 | ||
707 | return 0; /* scsi layer doesn't check return value, sigh */ | 717 | return 0; /* scsi layer doesn't check return value, sigh */ |