diff options
-rw-r--r-- | src/drivers/net/ipoib.c | 1 | ||||
-rw-r--r-- | src/include/ipxe/infiniband.h | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c index a245cce1b..8a65c87ba 100644 --- a/src/drivers/net/ipoib.c +++ b/src/drivers/net/ipoib.c @@ -956,6 +956,7 @@ static int ipoib_probe ( struct ib_device *ibdev ) { /* Extract hardware address */ memcpy ( netdev->hw_addr, &ibdev->gid.s.guid, sizeof ( ibdev->gid.s.guid ) ); + memcpy ( netdev->ll_addr, ibdev->lemac, ETH_ALEN ); /* Set local MAC address */ memcpy ( &ipoib->mac.gid.s.guid, &ibdev->gid.s.guid, diff --git a/src/include/ipxe/infiniband.h b/src/include/ipxe/infiniband.h index 5910390da..d7ecd1623 100644 --- a/src/include/ipxe/infiniband.h +++ b/src/include/ipxe/infiniband.h @@ -15,6 +15,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #include <ipxe/tables.h> #include <ipxe/ib_packet.h> #include <ipxe/ib_mad.h> +#include <ipxe/if_ether.h> /** Subnet management interface QPN */ #define IB_QPN_SMI 0 @@ -457,6 +458,9 @@ struct ib_device { /** General services interface */ struct ib_mad_interface *gsi; + /** IPoIB LEMAC (if non-default) */ + uint8_t lemac[ETH_ALEN]; + /** Driver private data */ void *drv_priv; }; |