[PATCH v3] libsas: fix bug for vacant phy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hiï James

This patch fix bug reported by Chuck. And this new version incorporate comments
from Hannes. Please consider to include it into mainline.	

Jack.                                                         
From: Jack Wang <jack_wang@xxxxxxxxx>
Date: Wed, 15 Sep 2010 16:43:03 +0800
Subject: [PATCH] fix bug for vacant phy

Signed-off-by: Jack Wang <jack_wang@xxxxxxxxx>
Signed-off-by: Lindar Liu <lindar_liu@xxxxxxxxx>
Tested-by: Chuck Tuffli <Chuck_Tuffli@xxxxxxxxxxxxxx>

---
 sas_expander.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/sas_expander.c b/sas_expander.c
index d1d86a6..f282234 100644
--- a/sas_expander.c
+++ b/sas_expander.c
@@ -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,
-- 
1.7.2.3.msysgit.0

Attachment: 0001-fix-bug-for-vacant-phy.patch
Description: Binary data


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux