All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Jiri Pirko <jiri@resnulli.us>
Cc: netdev@vger.kernel.org, davem@davemloft.net, edumazet@google.com,
	kuba@kernel.org, pabeni@redhat.com, saeedm@nvidia.com,
	leon@kernel.org, tariqt@nvidia.com, andrew+netdev@lunn.ch,
	donald.hunter@gmail.com, parav@nvidia.com
Subject: Re: [PATCH net-next 2/4] net/mlx5: Expose serial numbers in devlink info
Date: Tue, 18 Mar 2025 17:38:58 +0000	[thread overview]
Message-ID: <20250318173858.GS688833@kernel.org> (raw)
In-Reply-To: <20250318153627.95030-3-jiri@resnulli.us>

On Tue, Mar 18, 2025 at 04:36:25PM +0100, Jiri Pirko wrote:
> From: Jiri Pirko <jiri@nvidia.com>
> 
> Devlink info allows to expose serial number and board serial number
> Get the values from PCI VPD and expose it.
> 
> $ devlink dev info
> pci/0000:08:00.0:
>   driver mlx5_core
>   serial_number e4397f872caeed218000846daa7d2f49
>   board.serial_number MT2314XZ00YA

Hi Jiri,

I'm sorry if this is is somehow obvious, but what is
the difference between the serial number and board serial number
(yes, I do see that they are different numbers :)

>   versions:
>       fixed:
>         fw.psid MT_0000000894
>       running:
>         fw.version 28.41.1000
>         fw 28.41.1000
>       stored:
>         fw.version 28.41.1000
>         fw 28.41.1000
> auxiliary/mlx5_core.eth.0:
>   driver mlx5_core.eth
> pci/0000:08:00.1:
>   driver mlx5_core
>   serial_number e4397f872caeed218000846daa7d2f49
>   board.serial_number MT2314XZ00YA
>   versions:
>       fixed:
>         fw.psid MT_0000000894
>       running:
>         fw.version 28.41.1000
>         fw 28.41.1000
>       stored:
>         fw.version 28.41.1000
>         fw 28.41.1000
> auxiliary/mlx5_core.eth.1:
>   driver mlx5_core.eth
> 
> Signed-off-by: Jiri Pirko <jiri@nvidia.com>
> Reviewed-by: Parav Pandit <parav@nvidia.com>
> ---
>  .../net/ethernet/mellanox/mlx5/core/devlink.c | 49 +++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
> index 73cd74644378..be0ae26d1582 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c
> @@ -35,6 +35,51 @@ static u16 mlx5_fw_ver_subminor(u32 version)
>  	return version & 0xffff;
>  }
>  
> +static int mlx5_devlink_serial_numbers_put(struct mlx5_core_dev *dev,
> +					   struct devlink_info_req *req,
> +					   struct netlink_ext_ack *extack)
> +{
> +	struct pci_dev *pdev = dev->pdev;
> +	unsigned int vpd_size, kw_len;
> +	char *str, *end;
> +	u8 *vpd_data;
> +	int start;
> +	int err;
> +
> +	vpd_data = pci_vpd_alloc(pdev, &vpd_size);
> +	if (IS_ERR(vpd_data))
> +		return 0;
> +
> +	start = pci_vpd_find_ro_info_keyword(vpd_data, vpd_size,
> +					     PCI_VPD_RO_KEYWORD_SERIALNO, &kw_len);
> +	if (start >= 0) {
> +		str = kstrndup(vpd_data + start, kw_len, GFP_KERNEL);
> +		if (!str) {
> +			err = -ENOMEM;
> +			goto end;
> +		}
> +		end = strchrnul(str, ' ');
> +		*end = '\0';
> +		err = devlink_info_board_serial_number_put(req, str);
> +		kfree(str);
> +	}
> +
> +	start = pci_vpd_find_ro_info_keyword(vpd_data, vpd_size, "V3", &kw_len);
> +	if (start >= 0) {
> +		str = kstrndup(vpd_data + start, kw_len, GFP_KERNEL);
> +		if (!str) {
> +			err = -ENOMEM;
> +			goto end;
> +		}
> +		err = devlink_info_serial_number_put(req, str);
> +		kfree(str);
> +	}
> +
> +end:
> +	kfree(vpd_data);
> +	return err;

Perhaps it can never happen, but Smatch flags that err may be used
uninitialised here. I believe that can theoretically occur if
neither of start condition above are met.

> +}
> +

...

  reply	other threads:[~2025-03-18 17:39 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-18 15:36 [PATCH net-next 0/4] net/mlx5: Expose additional devlink dev info Jiri Pirko
2025-03-18 15:36 ` [PATCH net-next 1/4] ynl: devlink: add missing board-serial-number Jiri Pirko
2025-03-23 17:18   ` Simon Horman
2025-03-18 15:36 ` [PATCH net-next 2/4] net/mlx5: Expose serial numbers in devlink info Jiri Pirko
2025-03-18 17:38   ` Simon Horman [this message]
2025-03-19 11:39     ` Jiri Pirko
2025-03-20 13:50       ` Simon Horman
2025-03-23 17:18   ` Simon Horman
2025-03-18 15:36 ` [PATCH net-next 3/4] devlink: add function unique identifier to devlink dev info Jiri Pirko
2025-03-23 17:18   ` Simon Horman
2025-03-18 15:36 ` [PATCH net-next 4/4] net/mlx5: Expose function UID in devlink info Jiri Pirko
2025-03-23 17:19   ` Simon Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250318173858.GS688833@kernel.org \
    --to=horms@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=donald.hunter@gmail.com \
    --cc=edumazet@google.com \
    --cc=jiri@resnulli.us \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=parav@nvidia.com \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.