Message ID | 1449688415.2226.34.camel@HansenPartnership.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
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.Bottomley@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 <hare@suse.com> Cheers, Hannes
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 *);
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.Bottomley@HansenPartnership.com> --- drivers/scsi/scsi_transport_sas.c | 14 ++++++++++++++ include/scsi/scsi_transport_sas.h | 1 + 2 files changed, 15 insertions(+), 0 deletions(-)