[ofa-general] Re: [PATCH v3] ipoib: do not join broadcast group if interface is brought down
Yossi Etigin
yosefe at Voltaire.COM
Fri Jan 9 07:36:52 PST 2009
Roland Dreier wrote:
>
> OK, so the race exists in the current code, but no one has hit it enough
> to track it down. Maybe we can fix it later.
>
> But you ignored my second question about lock nesting problems?
>
> - R.
How about just this one? We stop the task instead of re-joining the broadcast
if the interface is brought down.
I tested it and it also solves the bug.
-- Index: b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
===================================================================
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2009-01-09 14:02:23.000000000 +0200
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2009-01-09 16:57:50.000000000 +0200
@@ -570,6 +570,9 @@ void ipoib_mcast_join_task(struct work_s
if (!priv->broadcast) {
struct ipoib_mcast *broadcast;
+ if (!test_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags))
+ return;
+
broadcast = ipoib_mcast_alloc(dev, 1);
if (!broadcast) {
ipoib_warn(priv, "failed to allocate broadcast group\n");
--Yossi
More information about the general
mailing list