Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ce05937 authored by Roland Dreier's avatar Roland Dreier Committed by Roland Dreier
Browse files

[PATCH] IPoIB: Set full membership bit in P_Keys



Always make sure that the full membership bit is set in the P_Keys
that IPoIB uses.  This makes sure that all hosts join the correct
multicast groups so that hosts that are partial partition members
can talk to the rest of the network.

Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent ec34a922
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -883,6 +883,12 @@ static ssize_t create_child(struct class_device *cdev,
	if (pkey < 0 || pkey > 0xffff)
		return -EINVAL;

	/*
	 * Set the full membership bit, so that we join the right
	 * broadcast group, etc.
	 */
	pkey |= 0x8000;

	ret = ipoib_vlan_add(container_of(cdev, struct net_device, class_dev),
			     pkey);

@@ -935,6 +941,12 @@ static struct net_device *ipoib_add_port(const char *format,
		goto alloc_mem_failed;
	}

	/*
	 * Set the full membership bit, so that we join the right
	 * broadcast group, etc.
	 */
	priv->pkey |= 0x8000;

	priv->dev->broadcast[8] = priv->pkey >> 8;
	priv->dev->broadcast[9] = priv->pkey & 0xff;