aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/net/ipoib.c3
-rw-r--r--src/include/gpxe/infiniband.h3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c
index 06e6a2c..b833891 100644
--- a/src/drivers/net/ipoib.c
+++ b/src/drivers/net/ipoib.c
@@ -708,7 +708,8 @@ void ipoib_link_state_changed ( struct ib_device *ibdev ) {
sizeof ( mac->gid.u.half[0] ) );
/* Update broadcast GID based on potentially-new partition key */
- ipoib->broadcast.gid.u.words[2] = htons ( ibdev->pkey );
+ ipoib->broadcast.gid.u.words[2] =
+ htons ( ibdev->pkey | IB_PKEY_FULL );
/* Set net device link state to reflect Infiniband link state */
rc = ib_link_rc ( ibdev );
diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h
index a12e403..70b930d 100644
--- a/src/include/gpxe/infiniband.h
+++ b/src/include/gpxe/infiniband.h
@@ -33,6 +33,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
/** Default Infiniband partition key */
#define IB_PKEY_DEFAULT 0xffff
+/** Infiniband partition key full membership flag */
+#define IB_PKEY_FULL 0x8000
+
/**
* Maximum payload size
*