On 12/09/2015 08:13 PM, James Bottomley wrote:
For a device known to be SAS connected, this will return the endpoint
address.  This is useful for getting the SAS address of SATA devices.

Signed-off-by: James Bottomley <james.bottom...@hansenpartnership.com>
---
  drivers/scsi/scsi_transport_sas.c |   14 ++++++++++++++
  include/scsi/scsi_transport_sas.h |    1 +
  2 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/drivers/scsi/scsi_transport_sas.c 
b/drivers/scsi/scsi_transport_sas.c
index b17f763..80520e2 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -383,6 +383,20 @@ void sas_remove_host(struct Scsi_Host *shost)
  EXPORT_SYMBOL(sas_remove_host);

  /**
+ * sas_get_address - return the SAS address of the device
+ * @sdev: scsi device
+ *
+ * Returns the SAS address of the scsi device
+ */
+u64 sas_get_address(struct scsi_device *sdev)
+{
+       struct sas_end_device *rdev = sas_sdev_to_rdev(sdev);
+
+       return rdev->rphy.identify.sas_address;
+}
+EXPORT_SYMBOL(sas_get_address);
+
+/**
   * sas_tlr_supported - checking TLR bit in vpd 0x90
   * @sdev: scsi device struct
   *
diff --git a/include/scsi/scsi_transport_sas.h 
b/include/scsi/scsi_transport_sas.h
index a8fdd10..13c0b2b 100644
--- a/include/scsi/scsi_transport_sas.h
+++ b/include/scsi/scsi_transport_sas.h
@@ -189,6 +189,7 @@ extern int sas_phy_add(struct sas_phy *);
  extern void sas_phy_delete(struct sas_phy *);
  extern int scsi_is_sas_phy(const struct device *);

+u64 sas_get_address(struct scsi_device *);
  unsigned int sas_tlr_supported(struct scsi_device *);
  unsigned int sas_is_tlr_enabled(struct scsi_device *);
  void sas_disable_tlr(struct scsi_device *);

Reviewed-by: Hannes Reinecke <h...@suse.com>

Cheers,

Hannes
--
Dr. Hannes Reinecke                            zSeries & Storage
h...@suse.de                                   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to