aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 5e2db3b7c8bb..09a1748f9d13 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -393,8 +393,13 @@ static int ipoib_mcast_join_complete(int status,
393 goto out_locked; 393 goto out_locked;
394 } 394 }
395 } else { 395 } else {
396 if (mcast->logcount++ < 20) { 396 bool silent_fail =
397 if (status == -ETIMEDOUT || status == -EAGAIN) { 397 test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) &&
398 status == -EINVAL;
399
400 if (mcast->logcount < 20) {
401 if (status == -ETIMEDOUT || status == -EAGAIN ||
402 silent_fail) {
398 ipoib_dbg_mcast(priv, "%smulticast join failed for %pI6, status %d\n", 403 ipoib_dbg_mcast(priv, "%smulticast join failed for %pI6, status %d\n",
399 test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) ? "sendonly " : "", 404 test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) ? "sendonly " : "",
400 mcast->mcmember.mgid.raw, status); 405 mcast->mcmember.mgid.raw, status);
@@ -403,6 +408,9 @@ static int ipoib_mcast_join_complete(int status,
403 test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) ? "sendonly " : "", 408 test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) ? "sendonly " : "",
404 mcast->mcmember.mgid.raw, status); 409 mcast->mcmember.mgid.raw, status);
405 } 410 }
411
412 if (!silent_fail)
413 mcast->logcount++;
406 } 414 }
407 415
408 if (test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) && 416 if (test_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags) &&