diff options
author | Linus Torvalds | 2005-11-13 13:45:00 -0800 |
---|---|---|
committer | Linus Torvalds | 2005-11-13 13:45:00 -0800 |
commit | 4ba529a8a39e15688b6a3d31b11930d1f8a1edad (patch) | |
tree | 4a57f09fd8b96f1eb5f87f52fd0862db49f29e31 /drivers | |
parent | 41866a56cc4e676240b94ed8eaeca375aaef7496 (diff) | |
parent | dcc2d1e7f0acf7d3f7ae632a73cd5f828ef9de20 (diff) |
Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/libata-core.c | 3 | ||||
-rw-r--r-- | drivers/scsi/libata-scsi.c | 6 | ||||
-rw-r--r-- | drivers/scsi/sata_sil24.c | 1 |
3 files changed, 8 insertions, 2 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index e51d9a8a2796..d81db3a3d4b9 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -532,8 +532,7 @@ void ata_tf_to_fis(const struct ata_taskfile *tf, u8 *fis, u8 pmp) * @fis: Buffer from which data will be input * @tf: Taskfile to output * - * Converts a standard ATA taskfile to a Serial ATA - * FIS structure (Register - Host to Device). + * Converts a serial ATA FIS structure to a standard ATA taskfile. * * LOCKING: * Inherited from caller. diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index 261be24e1df3..0df4b682965d 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c @@ -2276,6 +2276,12 @@ ata_scsi_pass_thru(struct ata_queued_cmd *qc, const u8 *scsicmd) tf->device = scsicmd[8]; tf->command = scsicmd[9]; } + /* + * If slave is possible, enforce correct master/slave bit + */ + if (qc->ap->flags & ATA_FLAG_SLAVE_POSS) + tf->device = qc->dev->devno ? + tf->device | ATA_DEV1 : tf->device & ~ATA_DEV1; /* * Filter SET_FEATURES - XFER MODE command -- otherwise, diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c index d3198d9a72c1..55e744d6db88 100644 --- a/drivers/scsi/sata_sil24.c +++ b/drivers/scsi/sata_sil24.c @@ -687,6 +687,7 @@ static void sil24_port_stop(struct ata_port *ap) struct sil24_port_priv *pp = ap->private_data; sil24_cblk_free(pp, dev); + ata_pad_free(ap, dev); kfree(pp); } |