提交 fd0527ab 编写于 作者: J Jeff Skirvin 提交者: Dan Williams

isci: Hard reset failure will link reset all phys in the port

In the case where the hard reset process fails, each link in
the port is put through a link reset sequence.
Signed-off-by: NJeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: NDan Williams <dan.j.williams@intel.com>
上级 fd536601
...@@ -1916,7 +1916,7 @@ int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *ipor ...@@ -1916,7 +1916,7 @@ int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *ipor
{ {
unsigned long flags; unsigned long flags;
enum sci_status status; enum sci_status status;
int ret = TMF_RESP_FUNC_COMPLETE; int idx, ret = TMF_RESP_FUNC_COMPLETE;
dev_dbg(&ihost->pdev->dev, "%s: iport = %p\n", dev_dbg(&ihost->pdev->dev, "%s: iport = %p\n",
__func__, iport); __func__, iport);
...@@ -1953,14 +1953,26 @@ int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *ipor ...@@ -1953,14 +1953,26 @@ int isci_port_perform_hard_reset(struct isci_host *ihost, struct isci_port *ipor
* the same as link failures on all phys in the port. * the same as link failures on all phys in the port.
*/ */
if (ret != TMF_RESP_FUNC_COMPLETE) { if (ret != TMF_RESP_FUNC_COMPLETE) {
dev_err(&ihost->pdev->dev, dev_err(&ihost->pdev->dev,
"%s: iport = %p; hard reset failed " "%s: iport = %p; hard reset failed "
"(0x%x) - sending link down to libsas for phy %p\n", "(0x%x) - driving explicit link fail for all phys\n",
__func__, iport, iport->hard_reset_status, iphy); __func__, iport, iport->hard_reset_status);
isci_port_link_down(ihost, iphy, iport); /* Down all phys in the port. */
} spin_lock_irqsave(&ihost->scic_lock, flags);
for (idx = 0; idx < SCI_MAX_PHYS; ++idx) {
if (iport->sci.phy_table[idx] != NULL) {
scic_sds_phy_stop(
iport->sci.phy_table[idx]);
scic_sds_phy_start(
iport->sci.phy_table[idx]);
}
}
spin_unlock_irqrestore(&ihost->scic_lock, flags);
}
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册