|
@@ -978,6 +978,19 @@ static inline int update_parent_pkey(struct ipoib_dev_priv *priv)
|
|
*/
|
|
*/
|
|
priv->dev->broadcast[8] = priv->pkey >> 8;
|
|
priv->dev->broadcast[8] = priv->pkey >> 8;
|
|
priv->dev->broadcast[9] = priv->pkey & 0xff;
|
|
priv->dev->broadcast[9] = priv->pkey & 0xff;
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Update the broadcast address in the priv->broadcast object,
|
|
|
|
+ * in case it already exists, otherwise no one will do that.
|
|
|
|
+ */
|
|
|
|
+ if (priv->broadcast) {
|
|
|
|
+ spin_lock_irq(&priv->lock);
|
|
|
|
+ memcpy(priv->broadcast->mcmember.mgid.raw,
|
|
|
|
+ priv->dev->broadcast + 4,
|
|
|
|
+ sizeof(union ib_gid));
|
|
|
|
+ spin_unlock_irq(&priv->lock);
|
|
|
|
+ }
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|