Re: [PATCH] tg3:Add error handling to the function tg3_test_loopback

2 messages, 1 author, 2015-07-16 · open the first message on its own page

Re: [PATCH] tg3:Add error handling to the function tg3_test_loopback

From: Michael Chan <hidden>
Date: 2015-07-16 19:18:56

On Thu, 2015-07-16 at 14:51 -0400, Nicholas Krause wrote: 
This adds proper error handling for if the calls to the function
tg3_phy_lpbk_set fail by returning -EIO by assigning the return
value to the variable err and if it equals anything other then
zero jumps to the goto label done as no other work can be handled
internally in the function tg3_test_loopback.

Signed-off-by: Nicholas Krause <redacted>
Acked-by: Michael Chan <redacted>
quoted hunk
---
 drivers/net/ethernet/broadcom/tg3.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 73c934c..8584cb7 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -13625,8 +13625,10 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk)
 	    !tg3_flag(tp, USE_PHYLIB)) {
 		int i;
 
-		tg3_phy_lpbk_set(tp, 0, false);
-
+		err = tg3_phy_lpbk_set(tp, 0, false);
+			if (err)
+				goto done;
+
 		/* Wait for link */
 		for (i = 0; i < 100; i++) {
 			if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP)
@@ -13644,8 +13646,10 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk)
 			data[TG3_PHY_LOOPB_TEST] |= TG3_JMB_LOOPBACK_FAILED;
 
 		if (do_extlpbk) {
-			tg3_phy_lpbk_set(tp, 0, true);
-
+			err = tg3_phy_lpbk_set(tp, 0, true);
+
+				if (err)
+					goto done;
 			/* All link indications report up, but the hardware
 			 * isn't really ready for about 20 msec.  Double it
 			 * to be sure.

Re: [PATCH] tg3:Add error handling to the function tg3_test_loopback

From: Michael Chan <hidden>
Date: 2015-07-16 19:20:38

On Thu, 2015-07-16 at 12:18 -0700, Michael Chan wrote: 
On Thu, 2015-07-16 at 14:51 -0400, Nicholas Krause wrote: 
quoted
This adds proper error handling for if the calls to the function
tg3_phy_lpbk_set fail by returning -EIO by assigning the return
value to the variable err and if it equals anything other then
zero jumps to the goto label done as no other work can be handled
internally in the function tg3_test_loopback.

Signed-off-by: Nicholas Krause <redacted>
Acked-by: Michael Chan <redacted>
Your indentation doesn't look right.  Other than that, it is ok.
quoted
---
 drivers/net/ethernet/broadcom/tg3.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 73c934c..8584cb7 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -13625,8 +13625,10 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk)
 	    !tg3_flag(tp, USE_PHYLIB)) {
 		int i;
 
-		tg3_phy_lpbk_set(tp, 0, false);
-
+		err = tg3_phy_lpbk_set(tp, 0, false);
+			if (err)
+				goto done;
+
 		/* Wait for link */
 		for (i = 0; i < 100; i++) {
 			if (tr32(MAC_TX_STATUS) & TX_STATUS_LINK_UP)
@@ -13644,8 +13646,10 @@ static int tg3_test_loopback(struct tg3 *tp, u64 *data, bool do_extlpbk)
 			data[TG3_PHY_LOOPB_TEST] |= TG3_JMB_LOOPBACK_FAILED;
 
 		if (do_extlpbk) {
-			tg3_phy_lpbk_set(tp, 0, true);
-
+			err = tg3_phy_lpbk_set(tp, 0, true);
+
+				if (err)
+					goto done;
 			/* All link indications report up, but the hardware
 			 * isn't really ready for about 20 msec.  Double it
 			 * to be sure.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help