From 173c0c25363fc7a9aaaef606ef35e73b765e888b Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 21 Mar 2016 09:29:54 +0000 Subject: [PATCH] [infiniband] Allow drivers to override the eIPoIB LEMAC Signed-off-by: Michael Brown --- src/drivers/net/ipoib.c | 1 + src/include/ipxe/infiniband.h | 4 ++++ 2 files changed, 5 insertions(+) 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 #include #include +#include /** 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; };