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: Yan Burman <yanb@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
parent
9d1ad66e3e
commit
4b48680b55
|
@ -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 */
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue