Thread (22 messages) 22 messages, 3 authors, 2023-12-12

Re: [RFC PATCH net-next v3 07/13] net: ethtool: Introduce a command to list PHYs on an interface

From: Maxime Chevallier <maxime.chevallier@bootlin.com>
Date: 2023-12-11 11:07:56
Also in: linux-arm-kernel, lkml

Hi Simon,

On Sat, 9 Dec 2023 17:04:57 +0000
Simon Horman [off-list ref] wrote:
On Fri, Dec 01, 2023 at 05:36:57PM +0100, Maxime Chevallier wrote:
quoted
As we have the ability to track the PHYs connected to a net_device
through the link_topology, we can expose this list to userspace. This
allows userspace to use these identifiers for phy-specific commands and
take the decision of which PHY to target by knowing the link topology.

Add PHY_GET and PHY_DUMP, which can be a filtered DUMP operation to list
devices on only one interface.

Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>  
...
quoted
diff --git a/net/ethtool/phy.c b/net/ethtool/phy.c  
...
quoted
+static int ethnl_phy_dump_one_dev(struct sk_buff *skb, struct net_device *dev,
+				  struct netlink_callback *cb)
+{
+	struct ethnl_phy_dump_ctx *ctx = (void *)cb->ctx;
+	struct phy_req_info *pri = ctx->phy_req_info;
+	struct phy_device_node *pdn;
+	unsigned long index = 1;
+	void *ehdr;
+	int ret;
+
+	pri->base.dev = dev;
+
+	xa_for_each(&dev->link_topo.phys, index, pdn) {
+		ehdr = ethnl_dump_put(skb, cb,
+				      ETHTOOL_MSG_PHY_GET_REPLY);
+		if (!ehdr) {
+			ret = -EMSGSIZE;
+			break;
+		}
+
+		ret = ethnl_fill_reply_header(skb, dev,
+					      ETHTOOL_A_PHY_HEADER);
+		if (ret < 0) {
+			genlmsg_cancel(skb, ehdr);
+			break;
+		}
+
+		memcpy(&pri->pdn, pdn, sizeof(*pdn));
+		ret = ethnl_phy_fill_reply(&pri->base, skb);
+
+		genlmsg_end(skb, ehdr);
+	}
+
+	return ret;  
Hi Maxime,

I am unsure if this can happen (or if I flagged this before)
but if the loop runs zero times then ret is uninitialised here.

Flagged by Smatch
Ah true, let me also fix that in the next revision.

Thanks for the review,

Maxime
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help