[SCSI] libsas: export sas_find_local_phy function

This is needed by the to be added I_T reset function in aic94xx.  It
needs to know the local phy so it can send a link or hard reset along
the path.

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
James Bottomley 2008-02-23 23:35:44 -06:00
parent eea5ff7bde
commit 5319578ca3
2 changed files with 4 additions and 2 deletions

View file

@ -434,7 +434,7 @@ static int sas_recover_I_T(struct domain_device *dev)
} }
/* Find the sas_phy that's attached to this device */ /* Find the sas_phy that's attached to this device */
static struct sas_phy *find_local_sas_phy(struct domain_device *dev) struct sas_phy *sas_find_local_phy(struct domain_device *dev)
{ {
struct domain_device *pdev = dev->parent; struct domain_device *pdev = dev->parent;
struct ex_phy *exphy = NULL; struct ex_phy *exphy = NULL;
@ -456,6 +456,7 @@ static struct sas_phy *find_local_sas_phy(struct domain_device *dev)
BUG_ON(!exphy); BUG_ON(!exphy);
return exphy->phy; return exphy->phy;
} }
EXPORT_SYMBOL_GPL(sas_find_local_phy);
/* Attempt to send a LUN reset message to a device */ /* Attempt to send a LUN reset message to a device */
int sas_eh_device_reset_handler(struct scsi_cmnd *cmd) int sas_eh_device_reset_handler(struct scsi_cmnd *cmd)
@ -482,7 +483,7 @@ int sas_eh_device_reset_handler(struct scsi_cmnd *cmd)
int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd) int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd)
{ {
struct domain_device *dev = cmd_to_domain_dev(cmd); struct domain_device *dev = cmd_to_domain_dev(cmd);
struct sas_phy *phy = find_local_sas_phy(dev); struct sas_phy *phy = sas_find_local_phy(dev);
int res; int res;
res = sas_phy_reset(phy, 1); res = sas_phy_reset(phy, 1);

View file

@ -675,5 +675,6 @@ extern int sas_smp_handler(struct Scsi_Host *shost, struct sas_rphy *rphy,
extern void sas_ssp_task_response(struct device *dev, struct sas_task *task, extern void sas_ssp_task_response(struct device *dev, struct sas_task *task,
struct ssp_response_iu *iu); struct ssp_response_iu *iu);
struct sas_phy *sas_find_local_phy(struct domain_device *dev);
#endif /* _SASLIB_H_ */ #endif /* _SASLIB_H_ */