All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Russell King" <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Herve Codina" <herve.codina@bootlin.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Vladimir Oltean" <vladimir.oltean@nxp.com>,
	"Köry Maincent" <kory.maincent@bootlin.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Marek Behún" <kabel@kernel.org>,
	"Piergiorgio Beruto" <piergiorgio.beruto@gmail.com>,
	"Oleksij Rempel" <o.rempel@pengutronix.de>,
	"Nicolò Veronese" <nicveronese@gmail.com>,
	"Simon Horman" <horms@kernel.org>,
	mwojtas@chromium.org
Subject: Re: [PATCH net-next v10 05/13] net: ethtool: Allow passing a phy index for some commands
Date: Fri, 8 Mar 2024 21:01:21 -0800	[thread overview]
Message-ID: <20240308210121.0c6a33f9@kernel.org> (raw)
In-Reply-To: <20240304151011.1610175-6-maxime.chevallier@bootlin.com>

On Mon,  4 Mar 2024 16:10:01 +0100 Maxime Chevallier wrote:
> +``ETHTOOL_A_HEADER_PHY_INDEX`` identify the ethernet PHY the message relates to.

identifies
Ethernet

> +As there are numerous commands that are related to PHY configuration, and because
> +we can have more than one PHY on the link, the PHY index can be passed in the

we can have -> there may be

> +request for the commands that needs it. It is however not mandatory, and if it

commas around however

> +is not passed for commands that target a PHY, the net_device.phydev pointer
> +is used, as a fallback that keeps the legacy behaviour.

s/ that keeps the legacy behaviour// feels more like a default than
legacy TBH

> @@ -104,7 +124,7 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
>  	/* No validation here, command policy should have a nested policy set
>  	 * for the header, therefore validation should have already been done.
>  	 */
> -	ret = nla_parse_nested(tb, ARRAY_SIZE(ethnl_header_policy) - 1, header,
> +	ret = nla_parse_nested(tb, ARRAY_SIZE(ethnl_header_policy_phy) - 1, header,
>  			       NULL, extack);
>  	if (ret < 0)
>  		return ret;
> @@ -145,6 +165,26 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
>  		return -EINVAL;
>  	}
>  
> +	if (dev) {
> +		if (tb[ETHTOOL_A_HEADER_PHY_INDEX]) {
> +			u32 phy_index = nla_get_u32(tb[ETHTOOL_A_HEADER_PHY_INDEX]);
> +
> +			phydev = phy_link_topo_get_phy(dev->link_topo,
> +						       phy_index);
> +			if (!phydev) {
> +				NL_SET_ERR_MSG_ATTR(extack, header,
> +						    "no phy matches phy index");
> +				return -EINVAL;

You can drop the msg, and use ENODEV?
Also point at the index, not header:

			struct nl_attr *phyid;

			phyid = tb[ETHTOOL_A_HEADER_PHY_INDEX];
			phydev = phy_link_topo_get_phy(dev->link_topo,
						       nla_get_u32(phyid));
			if (!...
				NL_SET_ERR_ATTR(extack, phyid);
				return -ENODEV;

> +			}
> +		} else {
> +			/* If we need a PHY but no phy index is specified, fallback
> +			 * to dev->phydev
> +			 */
> +			phydev = dev->phydev;
> +		}
> +	}

else if (tb[ETHTOOL_A_HEADER_PHY_INDEX]) {
	NL_SET_ERR_MSG_ATTR("can't target a PHY without a netdev")
	...

? just in case someone calls this with _phy policy and no dev required?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Jakub Kicinski <kuba@kernel.org>
To: Maxime Chevallier <maxime.chevallier@bootlin.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Eric Dumazet" <edumazet@google.com>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Russell King" <linux@armlinux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Herve Codina" <herve.codina@bootlin.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Vladimir Oltean" <vladimir.oltean@nxp.com>,
	"Köry Maincent" <kory.maincent@bootlin.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Marek Behún" <kabel@kernel.org>,
	"Piergiorgio Beruto" <piergiorgio.beruto@gmail.com>,
	"Oleksij Rempel" <o.rempel@pengutronix.de>,
	"Nicolò Veronese" <nicveronese@gmail.com>,
	"Simon Horman" <horms@kernel.org>,
	mwojtas@chromium.org
Subject: Re: [PATCH net-next v10 05/13] net: ethtool: Allow passing a phy index for some commands
Date: Fri, 8 Mar 2024 21:01:21 -0800	[thread overview]
Message-ID: <20240308210121.0c6a33f9@kernel.org> (raw)
In-Reply-To: <20240304151011.1610175-6-maxime.chevallier@bootlin.com>

On Mon,  4 Mar 2024 16:10:01 +0100 Maxime Chevallier wrote:
> +``ETHTOOL_A_HEADER_PHY_INDEX`` identify the ethernet PHY the message relates to.

identifies
Ethernet

> +As there are numerous commands that are related to PHY configuration, and because
> +we can have more than one PHY on the link, the PHY index can be passed in the

we can have -> there may be

> +request for the commands that needs it. It is however not mandatory, and if it

commas around however

> +is not passed for commands that target a PHY, the net_device.phydev pointer
> +is used, as a fallback that keeps the legacy behaviour.

s/ that keeps the legacy behaviour// feels more like a default than
legacy TBH

> @@ -104,7 +124,7 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
>  	/* No validation here, command policy should have a nested policy set
>  	 * for the header, therefore validation should have already been done.
>  	 */
> -	ret = nla_parse_nested(tb, ARRAY_SIZE(ethnl_header_policy) - 1, header,
> +	ret = nla_parse_nested(tb, ARRAY_SIZE(ethnl_header_policy_phy) - 1, header,
>  			       NULL, extack);
>  	if (ret < 0)
>  		return ret;
> @@ -145,6 +165,26 @@ int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
>  		return -EINVAL;
>  	}
>  
> +	if (dev) {
> +		if (tb[ETHTOOL_A_HEADER_PHY_INDEX]) {
> +			u32 phy_index = nla_get_u32(tb[ETHTOOL_A_HEADER_PHY_INDEX]);
> +
> +			phydev = phy_link_topo_get_phy(dev->link_topo,
> +						       phy_index);
> +			if (!phydev) {
> +				NL_SET_ERR_MSG_ATTR(extack, header,
> +						    "no phy matches phy index");
> +				return -EINVAL;

You can drop the msg, and use ENODEV?
Also point at the index, not header:

			struct nl_attr *phyid;

			phyid = tb[ETHTOOL_A_HEADER_PHY_INDEX];
			phydev = phy_link_topo_get_phy(dev->link_topo,
						       nla_get_u32(phyid));
			if (!...
				NL_SET_ERR_ATTR(extack, phyid);
				return -ENODEV;

> +			}
> +		} else {
> +			/* If we need a PHY but no phy index is specified, fallback
> +			 * to dev->phydev
> +			 */
> +			phydev = dev->phydev;
> +		}
> +	}

else if (tb[ETHTOOL_A_HEADER_PHY_INDEX]) {
	NL_SET_ERR_MSG_ATTR("can't target a PHY without a netdev")
	...

? just in case someone calls this with _phy policy and no dev required?

  reply	other threads:[~2024-03-09  5:01 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-04 15:09 [PATCH net-next v10 00/13] Introduce PHY listing and link_topology tracking Maxime Chevallier
2024-03-04 15:09 ` Maxime Chevallier
2024-03-04 15:09 ` [PATCH net-next v10 01/13] net: phy: Introduce ethernet link topology representation Maxime Chevallier
2024-03-04 15:09   ` Maxime Chevallier
2024-03-04 15:09 ` [PATCH net-next v10 02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY Maxime Chevallier
2024-03-04 15:09   ` Maxime Chevallier
2024-03-04 15:09 ` [PATCH net-next v10 03/13] net: phy: add helpers to handle sfp phy connect/disconnect Maxime Chevallier
2024-03-04 15:09   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 04/13] net: sfp: Add helper to return the SFP bus name Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 05/13] net: ethtool: Allow passing a phy index for some commands Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-09  5:01   ` Jakub Kicinski [this message]
2024-03-09  5:01     ` Jakub Kicinski
2024-03-04 15:10 ` [PATCH net-next v10 06/13] netlink: specs: add phy-index as a header parameter Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 07/13] net: ethtool: Introduce a command to list PHYs on an interface Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-09  5:18   ` Jakub Kicinski
2024-03-09  5:18     ` Jakub Kicinski
2024-04-04  8:38     ` Maxime Chevallier
2024-04-04  8:38       ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 08/13] netlink: specs: add ethnl PHY_GET command set Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 09/13] net: ethtool: plca: Target the command to the requested PHY Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 10/13] net: ethtool: pse-pd: " Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 11/13] net: ethtool: cable-test: " Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 12/13] net: ethtool: strset: Allow querying phy stats by index Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-04 15:10 ` [PATCH net-next v10 13/13] Documentation: networking: document phy_link_topology Maxime Chevallier
2024-03-04 15:10   ` Maxime Chevallier
2024-03-09  5:27   ` Jakub Kicinski
2024-03-09  5:27     ` Jakub Kicinski

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=20240308210121.0c6a33f9@kernel.org \
    --to=kuba@kernel.org \
    --cc=andrew@lunn.ch \
    --cc=christophe.leroy@csgroup.eu \
    --cc=corbet@lwn.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=herve.codina@bootlin.com \
    --cc=hkallweit1@gmail.com \
    --cc=horms@kernel.org \
    --cc=jesse.brandeburg@intel.com \
    --cc=kabel@kernel.org \
    --cc=kory.maincent@bootlin.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=maxime.chevallier@bootlin.com \
    --cc=mwojtas@chromium.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicveronese@gmail.com \
    --cc=o.rempel@pengutronix.de \
    --cc=pabeni@redhat.com \
    --cc=piergiorgio.beruto@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.oltean@nxp.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.