summaryrefslogtreecommitdiffstats
path: root/src/net/infiniband
diff options
context:
space:
mode:
authorMichael Brown2009-11-16 21:34:54 +0100
committerMichael Brown2009-11-16 23:13:44 +0100
commit228ac9d0184006d22f12d5daecd0a03d81cd029e (patch)
treec82d20ccfdba0dcd1eb9031f17086a8c119172c8 /src/net/infiniband
parent[infiniband] Make node description invariant across all ports (diff)
downloadipxe-228ac9d0184006d22f12d5daecd0a03d81cd029e.tar.gz
ipxe-228ac9d0184006d22f12d5daecd0a03d81cd029e.tar.xz
ipxe-228ac9d0184006d22f12d5daecd0a03d81cd029e.zip
[infiniband] Include hostname in node description, if available
Diffstat (limited to 'src/net/infiniband')
-rw-r--r--src/net/infiniband/ib_sma.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/net/infiniband/ib_sma.c b/src/net/infiniband/ib_sma.c
index 562b0925..ff4cbbf6 100644
--- a/src/net/infiniband/ib_sma.c
+++ b/src/net/infiniband/ib_sma.c
@@ -25,6 +25,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <stdio.h>
#include <unistd.h>
#include <byteswap.h>
+#include <gpxe/settings.h>
#include <gpxe/infiniband.h>
#include <gpxe/iobuf.h>
#include <gpxe/ib_mi.h>
@@ -88,13 +89,18 @@ static void ib_sma_node_desc ( struct ib_device *ibdev,
struct ib_address_vector *av ) {
struct ib_node_desc *node_desc = &mad->smp.smp_data.node_desc;
struct ib_gid_half guid;
+ char hostname[ sizeof ( node_desc->node_string ) ];
+ int hostname_len;
int rc;
/* Fill in information */
memset ( node_desc, 0, sizeof ( *node_desc ) );
ib_get_hca_info ( ibdev, &guid );
+ hostname_len = fetch_string_setting ( NULL, &hostname_setting,
+ hostname, sizeof ( hostname ) );
snprintf ( node_desc->node_string, sizeof ( node_desc->node_string ),
- "gPXE %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x (%s)",
+ "gPXE %s%s%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x (%s)",
+ hostname, ( ( hostname_len >= 0 ) ? " " : "" ),
guid.u.bytes[0], guid.u.bytes[1], guid.u.bytes[2],
guid.u.bytes[3], guid.u.bytes[4], guid.u.bytes[5],
guid.u.bytes[6], guid.u.bytes[7], ibdev->dev->name );