aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/mpt2sas
diff options
context:
space:
mode:
authorKashyap, Desai <kashyap.desai@lsi.com>2009-09-14 01:37:23 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-10-02 10:49:12 -0400
commit308609c63c6d6144c1210c9583c68bc532acb8d2 (patch)
tree27129c6ad8aaefb44469840fea3cf6c2684b5153 /drivers/scsi/mpt2sas
parent29786e19cda2117e12303df67546839591d2afa7 (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/scsi/mpt2sas')
-rw-r--r--drivers/scsi/mpt2sas/mpt2sas_scsih.c11
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: