diff options
author | Kashyap, Desai <kashyap.desai@lsi.com> | 2009-09-14 01:37:23 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-10-02 10:49:12 -0400 |
commit | 308609c63c6d6144c1210c9583c68bc532acb8d2 (patch) | |
tree | 27129c6ad8aaefb44469840fea3cf6c2684b5153 /drivers | |
parent | 29786e19cda2117e12303df67546839591d2afa7 (diff) |
[SCSI] mpt2sas: Support dev remove when phy status is MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT
Add support to process device removal events when the phy status is set to
MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT.
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_scsih.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c index 9ec50729d535..86ab32d7ab15 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c | |||
@@ -4067,15 +4067,16 @@ _scsih_sas_topology_change_event(struct MPT2SAS_ADAPTER *ioc, | |||
4067 | } | 4067 | } |
4068 | if (ioc->shost_recovery) | 4068 | if (ioc->shost_recovery) |
4069 | return; | 4069 | return; |
4070 | if (event_data->PHY[i].PhyStatus & | 4070 | phy_number = event_data->StartPhyNum + i; |
4071 | MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT) | 4071 | reason_code = event_data->PHY[i].PhyStatus & |
4072 | MPI2_EVENT_SAS_TOPO_RC_MASK; | ||
4073 | if ((event_data->PHY[i].PhyStatus & | ||
4074 | MPI2_EVENT_SAS_TOPO_PHYSTATUS_VACANT) && (reason_code != | ||
4075 | MPI2_EVENT_SAS_TOPO_RC_TARG_NOT_RESPONDING)) | ||
4072 | continue; | 4076 | continue; |
4073 | handle = le16_to_cpu(event_data->PHY[i].AttachedDevHandle); | 4077 | handle = le16_to_cpu(event_data->PHY[i].AttachedDevHandle); |
4074 | if (!handle) | 4078 | if (!handle) |
4075 | continue; | 4079 | continue; |
4076 | phy_number = event_data->StartPhyNum + i; | ||
4077 | reason_code = event_data->PHY[i].PhyStatus & | ||
4078 | MPI2_EVENT_SAS_TOPO_RC_MASK; | ||
4079 | link_rate_ = event_data->PHY[i].LinkRate >> 4; | 4080 | link_rate_ = event_data->PHY[i].LinkRate >> 4; |
4080 | switch (reason_code) { | 4081 | switch (reason_code) { |
4081 | case MPI2_EVENT_SAS_TOPO_RC_PHY_CHANGED: | 4082 | case MPI2_EVENT_SAS_TOPO_RC_PHY_CHANGED: |