diff --git a/drivers/net/sfc/selftest.c b/drivers/net/sfc/selftest.c
index c79ddce..8ad517c 100644
--- a/drivers/net/sfc/selftest.c
+++ b/drivers/net/sfc/selftest.c
@@ -566,8 +566,8 @@
 	struct ethtool_cmd ecmd, ecmd_loopback;
 	struct efx_tx_queue *tx_queue;
 	enum efx_loopback_mode old_mode, mode;
-	int count, rc = 0, link_up;
-	
+	int count, rc, link_up;
+
 	rc = efx_ethtool_get_settings(efx->net_dev, &ecmd);
 	if (rc) {
 		EFX_ERR(efx, "could not get GMII settings\n");
@@ -641,8 +641,8 @@
 		efx_for_each_tx_queue(tx_queue, efx) {
 			state->offload_csum = (tx_queue->queue ==
 					       EFX_TX_QUEUE_OFFLOAD_CSUM);
-			rc |= efx_test_loopback(tx_queue,
-						&tests->loopback[mode]);
+			rc = efx_test_loopback(tx_queue,
+					       &tests->loopback[mode]);
 			if (rc)
 				goto out;
 		}
@@ -668,22 +668,20 @@
 int efx_online_test(struct efx_nic *efx, struct efx_self_tests *tests)
 {
 	struct efx_channel *channel;
-	int rc = 0;
+	int rc;
 
-	EFX_LOG(efx, "performing online self-tests\n");
-
-	rc |= efx_test_interrupts(efx, tests);
+	rc = efx_test_interrupts(efx, tests);
+	if (rc)
+		return rc;
 	efx_for_each_channel(channel, efx) {
 		if (channel->has_interrupt)
-			rc |= efx_test_eventq_irq(channel, tests);
+			rc = efx_test_eventq_irq(channel, tests);
 		else
-			rc |= efx_test_eventq(channel, tests);
+			rc = efx_test_eventq(channel, tests);
+		if (rc)
+			return rc;
 	}
-	rc |= efx_test_phy(efx, tests);
-
-	if (rc)
-		EFX_ERR(efx, "failed online self-tests\n");
-
+	rc = efx_test_phy(efx, tests);
 	return rc;
 }
 
@@ -693,16 +691,12 @@
 		     struct efx_self_tests *tests, unsigned int loopback_modes)
 {
 	struct efx_selftest_state *state;
-	int rc = 0;
-
-	EFX_LOG(efx, "performing offline self-tests\n");
+	int rc;
 
 	/* Create a selftest_state structure to hold state for the test */
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
-	if (state == NULL) {
-		rc = -ENOMEM;
-		goto out;
-	}
+	if (state == NULL)
+		return -ENOMEM;
 
 	/* Set the port loopback_selftest member. From this point on
 	 * all received packets will be dropped. Mark the state as
@@ -717,10 +711,6 @@
 	wmb();
 	kfree(state);
 
- out:
-	if (rc)
-		EFX_ERR(efx, "failed offline self-tests\n");
-
 	return rc;
 }
 
