Browse Source

IPoIB: Fix error path in ipoib_mcast_dev_flush()

Don't leak memory on allocation failure for broadcast mcast group.
Also, print a warning to match handling for other mcast groups.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Eli Cohen 19 years ago
parent
commit
70b4c8cdc1
1 changed files with 5 additions and 3 deletions
  1. 5 3
      drivers/infiniband/ulp/ipoib/ipoib_multicast.c

+ 5 - 3
drivers/infiniband/ulp/ipoib/ipoib_multicast.c

@@ -780,9 +780,11 @@ void ipoib_mcast_dev_flush(struct net_device *dev)
 					&priv->multicast_tree);
 
 			list_add_tail(&priv->broadcast->list, &remove_list);
-		}
-
-		priv->broadcast = nmcast;
+			priv->broadcast = nmcast;
+		} else
+			ipoib_warn(priv, "could not reallocate broadcast group "
+                        	          IPOIB_GID_FMT "\n",
+                                	  IPOIB_GID_ARG(priv->broadcast->mcmember.mgid));
 	}
 
 	spin_unlock_irqrestore(&priv->lock, flags);