Can some shed light on why sas_ata_phy_reset() does an I_T nexus reset? It seems like calling sas_phy_reset() might be more accurate in this case. Thanks. ---chuck diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c index e1a395b..b012d15 100644 --- a/drivers/scsi/libsas/sas_ata.c +++ b/drivers/scsi/libsas/sas_ata.c @@ -241,15 +241,11 @@ static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc) static void sas_ata_phy_reset(struct ata_port *ap) { struct domain_device *dev = ap->private_data; - struct sas_internal *i = - to_sas_internal(dev->port->ha->core.shost->transportt); - int res = TMF_RESP_FUNC_FAILED; - - if (i->dft->lldd_I_T_nexus_reset) - res = i->dft->lldd_I_T_nexus_reset(dev); + int res; - if (res != TMF_RESP_FUNC_COMPLETE) - SAS_DPRINTK("%s: Unable to reset I T nexus?\n", __func__); + res = sas_phy_reset(sas_find_local_phy(dev), 0); + if (res) + SAS_DPRINTK("%s: Unable to reset phy 0x%x\n", __func__, res); switch (dev->sata_dev.command_set) { case ATA_COMMAND_SET: -- To unsubscribe from this list: 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