summaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@steeleye.com>2007-07-16 13:41:04 -0500
committerJames Bottomley <jejb@mulgrave.localdomain>2007-07-18 11:16:14 -0500
commit0f05df8b3b41bc258bdf520b72e8cf7c524048b7 (patch)
treee6fd95f097da4785a1e0fb195044a745de8e89aa /include/scsi
parent3a2755af37b317d47fdc3dd15178adaf5d47263e (diff)
downloadlinux-0f05df8b3b41bc258bdf520b72e8cf7c524048b7.tar.gz
linux-0f05df8b3b41bc258bdf520b72e8cf7c524048b7.tar.bz2
linux-0f05df8b3b41bc258bdf520b72e8cf7c524048b7.zip
[SCSI] libsas, aic94xx: fix dma mapping cockups with ATA
This one was noticed by Gilbert Wu of Adaptec: The libata core actually does the DMA mapping for you, so there has to be an exception in the device drivers that *don't* do dma mapping for ATA commands. However, since we've already done this, libsas must now dma map any ATA commands that it wishes to issue ... and yes, this is a horrible mess. Additionally, the test in aic94xx for ATA protocols isn't quite right. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/scsi_transport_sas.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/scsi/scsi_transport_sas.h b/include/scsi/scsi_transport_sas.h
index 9aedc19820b0..97eeb5b59ea5 100644
--- a/include/scsi/scsi_transport_sas.h
+++ b/include/scsi/scsi_transport_sas.h
@@ -23,6 +23,12 @@ enum sas_protocol {
SAS_PROTOCOL_SSP = 0x08,
};
+static inline int sas_protocol_ata(enum sas_protocol proto)
+{
+ return ((proto & SAS_PROTOCOL_SATA) ||
+ (proto & SAS_PROTOCOL_STP))? 1 : 0;
+}
+
enum sas_linkrate {
/* These Values are defined in the SAS standard */
SAS_LINK_RATE_UNKNOWN = 0,