Hi, I've been working on a preliminary patch to enable SATA disk support in the SAS transport layer. As it stands now, the patch hooks several scsi_host_template functions to delegate various port allocation and command processing functions to libata; this also requires the creation of a few more functions to ensure that all the scsi_host_template functions redirect to libata when necessary. There are also some helpers so that the hooks don't unduly lengthen the existing functions. I'm midway through the implementation and am looking for feedback and suggestions about how to tighten things up. At the moment, I've been able to get an 80G Maxtor SATA disk to come up with the aic94xx driver in both PIO and UDMA modes. I can do things like streaming read/write operations, run LTP/pounder stress tests, and programs like scsi-info and smartctl, and they seem to run ok. However, there are several sketchy aspects to this patch--I've written nothing in sas_expander.c to hook up to SATA disks attached to expanders (will ask Alexis about that one), and the code that tries to push ATA error codes at libata when SAS errors are seen is rather frightening. Alas, I don't know ATA error codes quite well enough to feel like I'm doing justice to the SAS errors. These patches are based off 2.6.18-rc4 + jejb's scsi-misc, scsi-rc and aic94xx git trees + Brian King's libata SAS patches. Questions/comments? Thanks in advance for feedback, --Darrick - : send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html