[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <21e9e805-1582-4960-8250-61fe47b2d0aa@linux.dev>
Date: Thu, 8 May 2025 21:25:14 +0100
From: Vadim Fedorenko <vadim.fedorenko@...ux.dev>
To: Vladimir Oltean <vladimir.oltean@....com>, netdev@...r.kernel.org
Cc: Köry Maincent <kory.maincent@...tlin.com>,
Kurt Kanzenbach <kurt@...utronix.de>, Andrew Lunn <andrew@...n.ch>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Woojung Huh <woojung.huh@...rochip.com>, UNGLinuxDriver@...rochip.com,
Claudiu Manoil <claudiu.manoil@....com>,
Alexandre Belloni <alexandre.belloni@...tlin.com>,
Simon Horman <horms@...nel.org>, Richard Cochran <richardcochran@...il.com>,
Russell King <linux@...linux.org.uk>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next] net: dsa: convert to ndo_hwtstamp_get() and
ndo_hwtstamp_set()
On 08/05/2025 10:52, Vladimir Oltean wrote:
> New timestamping API was introduced in commit 66f7223039c0 ("net: add
> NDOs for configuring hardware timestamping") from kernel v6.6. It is
> time to convert DSA to the new API, so that the ndo_eth_ioctl() path can
> be removed completely.
>
> Move the ds->ops->port_hwtstamp_get() and ds->ops->port_hwtstamp_set()
> calls from dsa_user_ioctl() to dsa_user_hwtstamp_get() and
> dsa_user_hwtstamp_set().
>
> Due to the fact that the underlying ifreq type changes to
> kernel_hwtstamp_config, the drivers and the Ocelot switchdev front-end,
> all hooked up directly or indirectly, must also be converted all at once.
>
> The conversion also updates the comment from dsa_port_supports_hwtstamp(),
> which is no longer true because kernel_hwtstamp_config is kernel memory
> and does not need copy_to_user(). I've deliberated whether it is
> necessary to also update "err != -EOPNOTSUPP" to a more general "!err",
> but all drivers now either return 0 or -EOPNOTSUPP.
>
> The existing logic from the ocelot_ioctl() function, to avoid
> configuring timestamping if the PHY supports the operation, is obsoleted
> by more advanced core logic in dev_set_hwtstamp_phylib().
>
> This is only a partial preparation for proper PHY timestamping support.
> None of these switch driver currently sets up PTP traps for PHY
> timestamping, so setting dev->see_all_hwtstamp_requests is not yet
> necessary and the conversion is relatively trivial.
The new interface also supports providing error explanation via extack,
it would be great to add some error messages in case when setter fails.
For example, HIRSCHMANN HellCreek switch doesn't support disabling
of timestamps, it's not obvious from general -ERANGE error code, but can
be explained by the text in extack message.
Powered by blists - more mailing lists