All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: Florian Fainelli <florian.fainelli@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Radu Pirea <radu-nicolae.pirea@oss.nxp.com>,
	Jay Vosburgh <j.vosburgh@gmail.com>,
	Andy Gospodarek <andy@greyhouse.net>,
	Nicolas Ferre <nicolas.ferre@microchip.com>,
	Claudiu Beznea <claudiu.beznea@tuxon.dev>,
	Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Horatiu Vultur <horatiu.vultur@microchip.com>,
	UNGLinuxDriver@microchip.com,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-doc@vger.kernel.org,
	Maxime Chevallier <maxime.chevallier@bootlin.com>,
	Rahul Rameshbabu <rrameshbabu@nvidia.com>
Subject: Re: [PATCH net-next v11 12/13] net: ethtool: tsinfo: Add support for hwtstamp provider and get/set hwtstamp config
Date: Mon, 22 Apr 2024 21:10:55 +0100	[thread overview]
Message-ID: <20240422201055.GG42092@kernel.org> (raw)
In-Reply-To: <20240422-feature_ptp_netnext-v11-12-f14441f2a1d8@bootlin.com>

On Mon, Apr 22, 2024 at 02:50:27PM +0200, Kory Maincent wrote:
> Enhance 'get' command to retrieve tsinfo of hwtstamp providers within a
> network topology and read current hwtstamp configuration.
> 
> Introduce support for ETHTOOL_MSG_TSINFO_SET ethtool netlink socket to
> configure hwtstamp of a PHC provider. Note that simultaneous hwtstamp
> isn't supported; configuring a new one disables the previous setting.
> 
> Also, add support for a specific dump command to retrieve all hwtstamp
> providers within the network topology, with added functionality for
> filtered dump to target a single interface.
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>

Hi Kory,

Some minor feedback from my side.

> diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
> index 23b43f59fcfb..f901394507b3 100644
> --- a/include/linux/ptp_clock_kernel.h
> +++ b/include/linux/ptp_clock_kernel.h
> @@ -426,6 +426,43 @@ struct ptp_clock *ptp_clock_get_by_index(struct device *dev, int index);
>  
>  void ptp_clock_put(struct device *dev, struct ptp_clock *ptp);
>  
> +/**
> + * netdev_ptp_clock_find() - obtain the next PTP clock in the netdev
> + *			     topology
> + *
> + * @dev:    Pointer of the net device
> + * @indexp:  Pointer of ptp clock index start point
> + */

Recently -Wall was added to the kernel CI ./scripts/kernel-doc -none
test, which means that Kernel docs are now expected to
document return values. It would be nice to add them for new
code.

> +
> +struct ptp_clock *netdev_ptp_clock_find(struct net_device *dev,
> +					unsigned long *indexp);

...

> diff --git a/net/ethtool/tsinfo.c b/net/ethtool/tsinfo.c

...

> -const struct nla_policy ethnl_tsinfo_get_policy[] = {
> +const struct nla_policy
> +ethnl_tsinfo_hwtstamp_provider_policy[ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER_MAX + 1] = {

ethnl_tsinfo_hwtstamp_provider_policy seems to only be used in this file,
so it should be static.

> +	[ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER_INDEX] =
> +		NLA_POLICY_MIN(NLA_S32, 0),
> +	[ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER_QUALIFIER] =
> +		NLA_POLICY_MAX(NLA_U32, HWTSTAMP_PROVIDER_QUALIFIER_CNT - 1)
> +};
> +
> +const struct nla_policy ethnl_tsinfo_get_policy[ETHTOOL_A_TSINFO_MAX + 1] = {
>  	[ETHTOOL_A_TSINFO_HEADER]		=
>  		NLA_POLICY_NESTED(ethnl_header_policy_stats),
> +	[ETHTOOL_A_TSINFO_GHWTSTAMP] =
> +		NLA_POLICY_MAX(NLA_U8, 1),
> +	[ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER_NEST] =
> +		NLA_POLICY_NESTED(ethnl_tsinfo_hwtstamp_provider_policy),
>  };

...

> +static int ethnl_tsinfo_dump_one_ptp(struct sk_buff *skb, struct net_device *dev,
> +				     struct netlink_callback *cb,
> +				     struct ptp_clock *ptp)
> +{
> +	struct ethnl_tsinfo_dump_ctx *ctx = (void *)cb->ctx;
> +	struct tsinfo_reply_data *reply_data;
> +	struct tsinfo_req_info *req_info;
> +	void *ehdr;
> +	int ret;
> +
> +	reply_data = ctx->reply_data;
> +	req_info = ctx->req_info;
> +	req_info->hwtst.index = ptp_clock_index(ptp);
> +
> +	for (; ctx->pos_phcqualifier < HWTSTAMP_PROVIDER_QUALIFIER_CNT;
> +	     ctx->pos_phcqualifier++) {
> +		if (!netdev_support_hwtstamp_qualifier(dev,
> +						       ctx->pos_phcqualifier))
> +			continue;
> +
> +		ehdr = ethnl_dump_put(skb, cb,
> +				      ETHTOOL_MSG_TSINFO_GET_REPLY);
> +		if (!ehdr)
> +			return -EMSGSIZE;
> +
> +		memset(reply_data, 0, sizeof(*reply_data));
> +		reply_data->base.dev = dev;
> +		req_info->hwtst.qualifier = ctx->pos_phcqualifier;
> +		ret = tsinfo_prepare_data(&req_info->base,
> +					  &reply_data->base,
> +					  genl_info_dump(cb));
> +		if (ret < 0)
> +			break;
> +
> +		ret = ethnl_fill_reply_header(skb, dev,
> +					      ETHTOOL_A_TSINFO_HEADER);
> +		if (ret < 0)
> +			break;
> +
> +		ret = tsinfo_fill_reply(skb, &req_info->base,
> +					&reply_data->base);
> +		if (ret < 0)
> +			break;
> +	}
> +
> +	reply_data->base.dev = NULL;
> +	if (ret < 0)
> +		genlmsg_cancel(skb, ehdr);
> +	else
> +		genlmsg_end(skb, ehdr);

I suppose it can't occur, but if the for loop iterates zero times,
then ret and ehdr will be uninitialised here.

Flagged by Smatch.

> +	return ret;
> +}

...

  reply	other threads:[~2024-04-22 20:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-22 12:50 [PATCH net-next v11 00/13] net: Make timestamping selectable Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 01/13] net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 02/13] net: Move dev_set_hwtstamp_phylib to net/core/dev.h Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 03/13] net: Make dev_get_hwtstamp_phylib accessible Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 04/13] net: Make net_hwtstamp_validate accessible Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 05/13] net: Change the API of PHY default timestamp to MAC Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 06/13] net: net_tstamp: Add unspec field to hwtstamp_source enumeration Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 07/13] net: Add struct kernel_ethtool_ts_info Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 08/13] ptp: Add phc source and helpers to register specific PTP clock or get information Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 09/13] net: Add the possibility to support a selected hwtstamp in netdevice Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 10/13] net: netdevsim: ptp_mock: Convert to netdev_ptp_clock_register Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 11/13] net: macb: " Kory Maincent
2024-04-22 12:50 ` [PATCH net-next v11 12/13] net: ethtool: tsinfo: Add support for hwtstamp provider and get/set hwtstamp config Kory Maincent
2024-04-22 20:10   ` Simon Horman [this message]
2024-04-22 12:50 ` [PATCH net-next v11 13/13] netlink: specs: tsinfo: Enhance netlink attributes and add a set command Kory Maincent

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=20240422201055.GG42092@kernel.org \
    --to=horms@kernel.org \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=andrew@lunn.ch \
    --cc=andy@greyhouse.net \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=florian.fainelli@broadcom.com \
    --cc=hkallweit1@gmail.com \
    --cc=horatiu.vultur@microchip.com \
    --cc=j.vosburgh@gmail.com \
    --cc=kory.maincent@bootlin.com \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=maxime.chevallier@bootlin.com \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=pabeni@redhat.com \
    --cc=radu-nicolae.pirea@oss.nxp.com \
    --cc=richardcochran@gmail.com \
    --cc=rrameshbabu@nvidia.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=willemdebruijn.kernel@gmail.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.