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

Commit 4b48680b authored by Yan Burman's avatar Yan Burman Committed by Roland Dreier
Browse files

IPoIB: Add version and firmware info to ethtool reporting



Implement version info as well as report firmware version and bus info
of the underlying IB HW device.

Signed-off-by: default avatarYan Burman <yanb@mellanox.com>
Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 9d1ad66e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -762,4 +762,6 @@ extern int ipoib_debug_level;

#define IPOIB_QPN(ha) (be32_to_cpup((__be32 *) ha) & 0xffffff)

extern const char ipoib_driver_version[];

#endif /* _IPOIB_H */
+18 −1
Original line number Diff line number Diff line
@@ -39,7 +39,24 @@
static void ipoib_get_drvinfo(struct net_device *netdev,
			      struct ethtool_drvinfo *drvinfo)
{
	strncpy(drvinfo->driver, "ipoib", sizeof(drvinfo->driver) - 1);
	struct ipoib_dev_priv *priv = netdev_priv(netdev);
	struct ib_device_attr *attr;

	attr = kmalloc(sizeof(*attr), GFP_KERNEL);
	if (attr && !ib_query_device(priv->ca, attr))
		snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
			 "%d.%d.%d", (int)(attr->fw_ver >> 32),
			 (int)(attr->fw_ver >> 16) & 0xffff,
			 (int)attr->fw_ver & 0xffff);
	kfree(attr);

	strlcpy(drvinfo->bus_info, dev_name(priv->ca->dma_device),
		sizeof(drvinfo->bus_info));

	strlcpy(drvinfo->version, ipoib_driver_version,
		sizeof(drvinfo->version));

	strlcpy(drvinfo->driver, "ib_ipoib", sizeof(drvinfo->driver));
}

static int ipoib_get_coalesce(struct net_device *dev,
+5 −0
Original line number Diff line number Diff line
@@ -49,9 +49,14 @@
#include <linux/jhash.h>
#include <net/arp.h>

#define DRV_VERSION "1.0.0"

const char ipoib_driver_version[] = DRV_VERSION;

MODULE_AUTHOR("Roland Dreier");
MODULE_DESCRIPTION("IP-over-InfiniBand net driver");
MODULE_LICENSE("Dual BSD/GPL");
MODULE_VERSION(DRV_VERSION);

int ipoib_sendq_size __read_mostly = IPOIB_TX_RING_SIZE;
int ipoib_recvq_size __read_mostly = IPOIB_RX_RING_SIZE;