diff options
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 12 |
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) && |