Commit 76abc0f6 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

nfp: report application FW build name in ethtool -i

Make sure application FW build name is NULL-terminated and
print it as a part of ethtool's firmware version string.
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0be40e66
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/slab.h> #include <linux/slab.h>
#include "nfpcore/nfp_cpp.h" #include "nfpcore/nfp_cpp.h"
#include "nfpcore/nfp_nffw.h"
#include "nfp_app.h" #include "nfp_app.h"
#include "nfp_main.h" #include "nfp_main.h"
...@@ -43,6 +44,13 @@ static const struct nfp_app_type *apps[] = { ...@@ -43,6 +44,13 @@ static const struct nfp_app_type *apps[] = {
&app_bpf, &app_bpf,
}; };
const char *nfp_app_mip_name(struct nfp_app *app)
{
if (!app || !app->pf->mip)
return "";
return nfp_mip_name(app->pf->mip);
}
struct sk_buff *nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size) struct sk_buff *nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size)
{ {
struct sk_buff *skb; struct sk_buff *skb;
......
...@@ -216,6 +216,7 @@ static inline void nfp_app_ctrl_rx(struct nfp_app *app, struct sk_buff *skb) ...@@ -216,6 +216,7 @@ static inline void nfp_app_ctrl_rx(struct nfp_app *app, struct sk_buff *skb)
app->type->ctrl_msg_rx(app, skb); app->type->ctrl_msg_rx(app, skb);
} }
const char *nfp_app_mip_name(struct nfp_app *app);
struct sk_buff *nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size); struct sk_buff *nfp_app_ctrl_msg_alloc(struct nfp_app *app, unsigned int size);
struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id); struct nfp_app *nfp_app_alloc(struct nfp_pf *pf, enum nfp_app_id id);
......
...@@ -166,10 +166,10 @@ static void nfp_net_get_drvinfo(struct net_device *netdev, ...@@ -166,10 +166,10 @@ static void nfp_net_get_drvinfo(struct net_device *netdev,
nfp_net_get_nspinfo(nn->app, nsp_version); nfp_net_get_nspinfo(nn->app, nsp_version);
snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version),
"%d.%d.%d.%d %s %s", "%d.%d.%d.%d %s %s %s",
nn->fw_ver.resv, nn->fw_ver.class, nn->fw_ver.resv, nn->fw_ver.class,
nn->fw_ver.major, nn->fw_ver.minor, nsp_version, nn->fw_ver.major, nn->fw_ver.minor, nsp_version,
nfp_app_name(nn->app)); nfp_app_mip_name(nn->app), nfp_app_name(nn->app));
strlcpy(drvinfo->bus_info, pci_name(nn->pdev), strlcpy(drvinfo->bus_info, pci_name(nn->pdev),
sizeof(drvinfo->bus_info)); sizeof(drvinfo->bus_info));
......
...@@ -141,6 +141,8 @@ const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp) ...@@ -141,6 +141,8 @@ const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp)
return NULL; return NULL;
} }
mip->name[sizeof(mip->name) - 1] = 0;
return mip; return mip;
} }
...@@ -149,6 +151,11 @@ void nfp_mip_close(const struct nfp_mip *mip) ...@@ -149,6 +151,11 @@ void nfp_mip_close(const struct nfp_mip *mip)
kfree(mip); kfree(mip);
} }
const char *nfp_mip_name(const struct nfp_mip *mip)
{
return mip->name;
}
/** /**
* nfp_mip_symtab() - Get the address and size of the MIP symbol table * nfp_mip_symtab() - Get the address and size of the MIP symbol table
* @mip: MIP handle * @mip: MIP handle
......
...@@ -55,6 +55,7 @@ struct nfp_mip; ...@@ -55,6 +55,7 @@ struct nfp_mip;
const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp); const struct nfp_mip *nfp_mip_open(struct nfp_cpp *cpp);
void nfp_mip_close(const struct nfp_mip *mip); void nfp_mip_close(const struct nfp_mip *mip);
const char *nfp_mip_name(const struct nfp_mip *mip);
void nfp_mip_symtab(const struct nfp_mip *mip, u32 *addr, u32 *size); void nfp_mip_symtab(const struct nfp_mip *mip, u32 *addr, u32 *size);
void nfp_mip_strtab(const struct nfp_mip *mip, u32 *addr, u32 *size); void nfp_mip_strtab(const struct nfp_mip *mip, u32 *addr, u32 *size);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment