From: Jakub Kicinski <kuba@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>,
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, Simon Horman <horms@kernel.org>,
Vladimir Oltean <vladimir.oltean@nxp.com>,
donald.hunter@gmail.com, danieller@nvidia.com,
ecree.xilinx@gmail.com,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
linux-doc@vger.kernel.org,
Maxime Chevallier <maxime.chevallier@bootlin.com>,
Rahul Rameshbabu <rrameshbabu@nvidia.com>,
Willem de Bruijn <willemb@google.com>,
Shannon Nelson <shannon.nelson@amd.com>,
Alexandra Winter <wintera@linux.ibm.com>
Subject: Re: [PATCH net-next v17 13/14] net: ethtool: Add support for tsconfig command to get/set hwtstamp config
Date: Mon, 15 Jul 2024 07:59:26 -0700 [thread overview]
Message-ID: <20240715075926.7f3e368c@kernel.org> (raw)
In-Reply-To: <20240709-feature_ptp_netnext-v17-13-b5317f50df2a@bootlin.com>
On Tue, 09 Jul 2024 15:53:45 +0200 Kory Maincent wrote:
> + /* Get the hwtstamp config from netlink */
> + if (tb[ETHTOOL_A_TSCONFIG_TX_TYPES]) {
> + ret = ethnl_parse_bitset(&req_tx_type, &mask,
> + __HWTSTAMP_TX_CNT,
> + tb[ETHTOOL_A_TSCONFIG_TX_TYPES],
> + ts_tx_type_names, info->extack);
> + if (ret < 0)
> + goto err_clock_put;
> +
> + /* Select only one tx type at a time */
> + if (ffs(req_tx_type) != fls(req_tx_type)) {
> + ret = -EINVAL;
> + goto err_clock_put;
> + }
> +
> + hwtst_config.tx_type = ffs(req_tx_type) - 1;
> + }
> + if (tb[ETHTOOL_A_TSCONFIG_RX_FILTERS]) {
> + ret = ethnl_parse_bitset(&req_rx_filter, &mask,
> + __HWTSTAMP_FILTER_CNT,
> + tb[ETHTOOL_A_TSCONFIG_RX_FILTERS],
> + ts_rx_filter_names, info->extack);
> + if (ret < 0)
> + goto err_clock_put;
> +
> + /* Select only one rx filter at a time */
> + if (ffs(req_rx_filter) != fls(req_rx_filter)) {
> + ret = -EINVAL;
> + goto err_clock_put;
> + }
> +
> + hwtst_config.rx_filter = ffs(req_rx_filter) - 1;
> + }
> + if (tb[ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS]) {
> + ret = nla_get_u32(tb[ETHTOOL_A_TSCONFIG_HWTSTAMP_FLAGS]);
> + if (ret < 0)
> + goto err_clock_put;
> + hwtst_config.flags = ret;
> + }
We should be tracking mod on these, too. Separately from the provider
mod bit, let's not call the driver and send notification if nothing
changed.
> + ret = net_hwtstamp_validate(&hwtst_config);
> + if (ret)
> + goto err_clock_put;
> +
> + /* Disable current time stamping if we try to enable another one */
> + if (mod && (hwtst_config.tx_type || hwtst_config.rx_filter)) {
> + struct kernel_hwtstamp_config zero_config = {0};
> +
> + ret = dev_set_hwtstamp_phylib(dev, &zero_config, info->extack);
> + if (ret < 0)
> + goto err_clock_put;
> + }
> +
> + /* Changed the selected hwtstamp source if needed */
> + if (mod) {
> + struct hwtstamp_provider *__hwtstamp;
> +
> + __hwtstamp = rcu_replace_pointer_rtnl(dev->hwtstamp, hwtstamp);
> + if (__hwtstamp)
> + call_rcu(&__hwtstamp->rcu_head,
> + remove_hwtstamp_provider);
> + }
> +
> + ret = dev_set_hwtstamp_phylib(dev, &hwtst_config, info->extack);
> + if (ret < 0)
> + return ret;
We can't unwind to old state here?
> + return 1;
Driver can change hwtst_config right? "upgrade" the rx_filter
to a broader one, IIRC. Shouldn't we reply to the set command with
the resulting configuration, in case it changed? Basically provide
the same info as the notification would.
next prev parent reply other threads:[~2024-07-15 14:59 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-09 13:53 [PATCH net-next v17 00/14] net: Make timestamping selectable Kory Maincent
2024-07-09 13:53 ` [PATCH net-next v17 01/14] net_tstamp: Add TIMESTAMPING SOFTWARE and HARDWARE mask Kory Maincent
2024-07-15 23:28 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 02/14] net: Make dev_get_hwtstamp_phylib accessible Kory Maincent
2024-07-15 23:29 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 03/14] net: Make net_hwtstamp_validate accessible Kory Maincent
2024-07-15 23:30 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 04/14] net: Change the API of PHY default timestamp to MAC Kory Maincent
2024-07-15 23:37 ` Jacob Keller
2024-07-27 13:44 ` Kory Maincent
2024-07-29 18:08 ` Jacob Keller
2024-09-25 12:46 ` Kory Maincent
2024-07-09 13:53 ` [PATCH net-next v17 05/14] net: net_tstamp: Add unspec field to hwtstamp_source enumeration Kory Maincent
2024-07-15 23:37 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 06/14] net: Add struct kernel_ethtool_ts_info Kory Maincent
2024-07-15 23:41 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 07/14] ptp: Add phc source and helpers to register specific PTP clock or get information Kory Maincent
2024-07-15 23:44 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 08/14] net: Add the possibility to support a selected hwtstamp in netdevice Kory Maincent
2024-07-17 17:22 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 09/14] net: netdevsim: ptp_mock: Convert to netdev_ptp_clock_register Kory Maincent
2024-07-17 17:23 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 10/14] net: macb: " Kory Maincent
2024-07-17 17:24 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 11/14] net: ptp: Move ptp_clock_index() to builtin symbol Kory Maincent
2024-07-17 17:24 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 12/14] net: ethtool: tsinfo: Add support for reading tsinfo for a specific hwtstamp provider Kory Maincent
2024-07-17 17:35 ` Jacob Keller
2024-07-26 19:04 ` Kory Maincent
2024-07-29 17:58 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 13/14] net: ethtool: Add support for tsconfig command to get/set hwtstamp config Kory Maincent
2024-07-15 14:59 ` Jakub Kicinski [this message]
2024-09-26 8:47 ` Kory Maincent
2024-07-17 17:43 ` Jacob Keller
2024-07-27 13:00 ` Kory Maincent
2024-07-29 18:02 ` Jacob Keller
2024-07-09 13:53 ` [PATCH net-next v17 14/14] netlink: specs: Enhance tsinfo netlink attributes and add a tsconfig set command Kory Maincent
2024-07-17 17:44 ` Jacob Keller
2024-07-15 15:30 ` [PATCH net-next v17 00/14] net: Make timestamping selectable patchwork-bot+netdevbpf
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=20240715075926.7f3e368c@kernel.org \
--to=kuba@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=danieller@nvidia.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=florian.fainelli@broadcom.com \
--cc=hkallweit1@gmail.com \
--cc=horatiu.vultur@microchip.com \
--cc=horms@kernel.org \
--cc=j.vosburgh@gmail.com \
--cc=kory.maincent@bootlin.com \
--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=shannon.nelson@amd.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=vladimir.oltean@nxp.com \
--cc=willemb@google.com \
--cc=willemdebruijn.kernel@gmail.com \
--cc=wintera@linux.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).