[SRU][Xenial][PATCH 1/4] scsi_transport_sas: add function to get SAS endpoint address

Joseph Salisbury joseph.salisbury at canonical.com
Wed Sep 20 19:12:53 UTC 2017


From: James Bottomley <James.Bottomley at HansenPartnership.com>

BugLink: http://bugs.launchpad.net/bugs/1693369

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.

Reviewed-by: Hannes Reinecke <hare at suse.com>
Signed-off-by: James Bottomley <James.Bottomley at HansenPartnership.com>
(cherry picked from commit bcf508c13385e74972f5cc06d8471d5c100395b0)
Signed-off-by: Joseph Salisbury <joseph.salisbury at canonical.com>
---
 drivers/scsi/scsi_transport_sas.c | 14 ++++++++++++++
 include/scsi/scsi_transport_sas.h |  1 +
 2 files changed, 15 insertions(+)

diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c
index 30d26e3..9228f56 100644
--- a/drivers/scsi/scsi_transport_sas.c
+++ b/drivers/scsi/scsi_transport_sas.c
@@ -367,6 +367,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 0bd71e2..140eeee 100644
--- a/include/scsi/scsi_transport_sas.h
+++ b/include/scsi/scsi_transport_sas.h
@@ -180,6 +180,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 *);
-- 
2.7.4





More information about the kernel-team mailing list