summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-11-14 05:20:16 +0100
committerJeff Garzik <jgarzik@pobox.com>2005-11-14 05:20:16 +0100
commit85d6162d6cea9220e483989817eac0cebc03070e (patch)
tree275f1594f1ab7a2e033c4df1af660f5695bcf060 /drivers/scsi
parent[libata sata_mv] fix tons of 50XX bugs (diff)
parentMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/... (diff)
downloadlinux-85d6162d6cea9220e483989817eac0cebc03070e.tar.xz
linux-85d6162d6cea9220e483989817eac0cebc03070e.zip
Merge branch 'master'
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/libata-core.c3
-rw-r--r--drivers/scsi/libata-scsi.c6
-rw-r--r--drivers/scsi/sata_sil24.c1
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);
}