mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Nicolai Buchwitz <nb@tipi-net.de>
To: "David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Simon Horman <horms@kernel.org>, Andrew Lunn <andrew@lunn.ch>,
	Kory Maincent <kory.maincent@bootlin.com>,
	vadim.fedorenko@linux.dev
Cc: James Clark <jjc@jclark.com>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH net] net: ethtool: let tsconfig reach a PHY-only timestamp provider
Date: Tue, 22 Sep 2026 10:05:30 +0200	[thread overview]
Message-ID: <5af6a329b41d6d40d1488ab4ceffef02@tipi-net.de> (raw)
In-Reply-To: <20260922070813.1458713-1-nb@tipi-net.de>

+TO vadim.fedorenko@linux.dev

(get_maintainers seems to missed Vadim, sorry)

On 22.9.2026 09:08, Nicolai Buchwitz wrote:
> TSCONFIG_GET and TSCONFIG_SET reject a device that implements neither
> hwtstamp NDO, even when its PHY can serve the request. The ioctls they
> meant to replace handle it, so the two interfaces disagree on the same
> hardware and user space has to pick one.
> 
> Drop both checks and let the phylib helpers decide, like the ioctls do.
> 
> As this makes a netdev provider reachable without ndo_hwtstamp_get, 
> test
> for the callback before calling it.
> 
> Fixes: 6e9e2eed4f39 ("net: ethtool: Add support for tsconfig command to 
> get/set hwtstamp config")
> Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
> ---
> Follow-up to 31995571219c ("net: don't require the hwtstamp NDOs when a
> PHY provides timestamping"), which fixed the ioctl side:
> 
>   https://lore.kernel.org/netdev/20260918095540.34286-1-nb@tipi-net.de/
> 
> Tested on a Raspberry Pi CM4 with BCM54213PE.
> 
>  net/core/dev_ioctl.c   |  3 ++-
>  net/ethtool/tsconfig.c | 15 ---------------
>  2 files changed, 2 insertions(+), 16 deletions(-)
> 
> diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
> index 164643140a52..f6029f60c1dc 100644
> --- a/net/core/dev_ioctl.c
> +++ b/net/core/dev_ioctl.c
> @@ -267,7 +267,8 @@ int dev_get_hwtstamp_phylib(struct net_device *dev,
>  		    hwprov->phydev)
>  			return phy_hwtstamp_get(hwprov->phydev, cfg);
> 
> -		if (hwprov->source == HWTSTAMP_SOURCE_NETDEV)
> +		if (hwprov->source == HWTSTAMP_SOURCE_NETDEV &&
> +		    dev->netdev_ops->ndo_hwtstamp_get)
>  			return dev->netdev_ops->ndo_hwtstamp_get(dev, cfg);
> 
>  		return -EOPNOTSUPP;
> diff --git a/net/ethtool/tsconfig.c b/net/ethtool/tsconfig.c
> index 6be3aa5d4bc1..8c99b2dc26d0 100644
> --- a/net/ethtool/tsconfig.c
> +++ b/net/ethtool/tsconfig.c
> @@ -42,9 +42,6 @@ static int tsconfig_prepare_data(const struct 
> ethnl_req_info *req_base,
>  	struct kernel_hwtstamp_config cfg = {};
>  	int ret;
> 
> -	if (!dev->netdev_ops->ndo_hwtstamp_get)
> -		return -EOPNOTSUPP;
> -
>  	ret = ethnl_ops_begin(dev);
>  	if (ret < 0)
>  		return ret;
> @@ -248,17 +245,6 @@ static int tsconfig_send_reply(struct net_device 
> *dev, struct genl_info *info)
>  	return ret;
>  }
> 
> -static int ethnl_set_tsconfig_validate(struct ethnl_req_info 
> *req_base,
> -				       struct genl_info *info)
> -{
> -	const struct net_device_ops *ops = req_base->dev->netdev_ops;
> -
> -	if (!ops->ndo_hwtstamp_set || !ops->ndo_hwtstamp_get)
> -		return -EOPNOTSUPP;
> -
> -	return 1;
> -}
> -
>  static struct hwtstamp_provider *
>  tsconfig_set_hwprov_from_desc(struct net_device *dev,
>  			      struct genl_info *info,
> @@ -459,6 +445,5 @@ const struct ethnl_request_ops 
> ethnl_tsconfig_request_ops = {
>  	.reply_size		= tsconfig_reply_size,
>  	.fill_reply		= tsconfig_fill_reply,
> 
> -	.set_validate		= ethnl_set_tsconfig_validate,
>  	.set			= ethnl_set_tsconfig,
>  };
> 
> base-commit: f0b88fade64c6fe52e15b246097d10bb115d8af3

Regards Nicolai

  reply	other threads:[~2026-09-22  8:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22  7:08 Nicolai Buchwitz
2026-09-22  8:05 ` Nicolai Buchwitz [this message]
2026-09-23  7:58 ` Kory Maincent
2026-09-23 10:10 ` netdev-bot+sashiko
2026-09-23 10:24   ` Nicolai Buchwitz

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=5af6a329b41d6d40d1488ab4ceffef02@tipi-net.de \
    --to=nb@tipi-net.de \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=jjc@jclark.com \
    --cc=kory.maincent@bootlin.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=vadim.fedorenko@linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®