提交 2bc72c91 编写于 作者: J Jack Wang 提交者: James Bottomley

[SCSI] libsas: fix bug for vacant phy

This patch fix bug reported by Chuck. And this new version incorporate comments
from Hannes. Please consider to include it into mainline.
Signed-off-by: NJack Wang <jack_wang@usish.com>
Signed-off-by: NLindar Liu <lindar_liu@usish.com>
Tested-by: NChuck Tuffli <Chuck_Tuffli@pmc-sierra.com>
Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
上级 526f7c79
......@@ -175,10 +175,10 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id,
switch (resp->result) {
case SMP_RESP_PHY_VACANT:
phy->phy_state = PHY_VACANT;
return;
break;
default:
phy->phy_state = PHY_NOT_PRESENT;
return;
break;
case SMP_RESP_FUNC_ACC:
phy->phy_state = PHY_EMPTY; /* do not know yet */
break;
......@@ -209,7 +209,10 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id,
phy->phy->negotiated_linkrate = phy->linkrate;
if (!rediscover)
sas_phy_add(phy->phy);
if (sas_phy_add(phy->phy)) {
sas_phy_free(phy->phy);
return;
}
SAS_DPRINTK("ex %016llx phy%02d:%c attached: %016llx\n",
SAS_ADDR(dev->sas_addr), phy->phy_id,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册