lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9ddd4560-cab2-451c-a024-54f525e064bf@wanadoo.fr>
Date: Fri, 25 Jul 2025 12:23:54 +0900
From: Vincent Mailhol <mailhol.vincent@...adoo.fr>
To: Jimmy Assarsson <extja@...ser.com>, linux-can@...r.kernel.org
Cc: Jimmy Assarsson <jimmyassarsson@...il.com>,
 Marc Kleine-Budde <mkl@...gutronix.de>, netdev@...r.kernel.org,
 Simon Horman <horms@...nel.org>
Subject: Re: [PATCH v2 09/11] can: kvaser_usb: Expose device information via
 devlink info_get()

+CC: Simon

On 24/07/2025 at 18:25, Jimmy Assarsson wrote:
> Expose device information via devlink info_get():
>   * Serial number
>   * Firmware version
>   * Hardware revision
>   * EAN (product number)
> 
> Example output:
>   $ devlink dev
>   usb/1-1.2:1.0
> 
>   $ devlink dev info
>   usb/1-1.2:1.0:
>     driver kvaser_usb
>     serial_number 1020
>     versions:
>         fixed:
>           board.rev 1
>           board.id 7330130009653
>         running:
>           fw 3.22.527
> 
> Signed-off-by: Jimmy Assarsson <extja@...ser.com>
> ---
> Changes in v2:
>   - Add two space indentation to terminal output.
>     Suggested by Vincent Mailhol [1]
> 
> [1] https://lore.kernel.org/linux-can/20250723083236.9-1-extja@kvaser.com/T/#m31ee4aad13ee29d5559b56fdce842609ae4f67c5
> 
>  .../can/usb/kvaser_usb/kvaser_usb_devlink.c   | 53 +++++++++++++++++++
>  1 file changed, 53 insertions(+)
> 
> diff --git a/drivers/net/can/usb/kvaser_usb/kvaser_usb_devlink.c b/drivers/net/can/usb/kvaser_usb/kvaser_usb_devlink.c
> index 9a3a8966a0a1..3568485a3e84 100644
> --- a/drivers/net/can/usb/kvaser_usb/kvaser_usb_devlink.c
> +++ b/drivers/net/can/usb/kvaser_usb/kvaser_usb_devlink.c
> @@ -6,5 +6,58 @@
>  
>  #include <net/devlink.h>
>  
> +#include "kvaser_usb.h"

I guess this has the same issue as the one pointed by Simon here:

  https://lore.kernel.org/linux-can/20250724135224.GA1266901@horms.kernel.org/

> +#define KVASER_USB_EAN_MSB 0x00073301
> +
> +static int kvaser_usb_devlink_info_get(struct devlink *devlink,
> +				       struct devlink_info_req *req,
> +				       struct netlink_ext_ack *extack)
> +{
> +	struct kvaser_usb *dev = devlink_priv(devlink);
> +	char buf[] = "73301XXXXXXXXXX";
> +	int ret;
> +
> +	if (dev->serial_number) {
> +		snprintf(buf, sizeof(buf), "%u", dev->serial_number);
> +		ret = devlink_info_serial_number_put(req, buf);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (dev->fw_version.major) {
> +		snprintf(buf, sizeof(buf), "%u.%u.%u",
> +			 dev->fw_version.major,
> +			 dev->fw_version.minor,
> +			 dev->fw_version.build);
> +		ret = devlink_info_version_running_put(req,
> +						       DEVLINK_INFO_VERSION_GENERIC_FW,
> +						       buf);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (dev->hw_revision) {
> +		snprintf(buf, sizeof(buf), "%u", dev->hw_revision);
> +		ret = devlink_info_version_fixed_put(req,
> +						     DEVLINK_INFO_VERSION_GENERIC_BOARD_REV,
> +						     buf);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	if (dev->ean[1] == KVASER_USB_EAN_MSB) {
> +		snprintf(buf, sizeof(buf), "%x%08x", dev->ean[1], dev->ean[0]);
> +		ret = devlink_info_version_fixed_put(req,
> +						     DEVLINK_INFO_VERSION_GENERIC_BOARD_ID,
> +						     buf);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
>  const struct devlink_ops kvaser_usb_devlink_ops = {
> +	.info_get = kvaser_usb_devlink_info_get,
>  };

Yours sincerely,
Vincent Mailhol


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ