Re: [PATCH net-next v2 6/7] ethtool: add interface to interact with Ethernet Power Equipment

From: Oleksij Rempel
Date: Thu Aug 25 2022 - 14:57:01 EST


On Thu, Aug 25, 2022 at 11:07:56AM -0700, Jakub Kicinski wrote:
> On Thu, 25 Aug 2022 15:02:10 +0200 Oleksij Rempel wrote:
> > +void ethtool_set_ethtool_pse_ops(const struct ethtool_pse_ops *ops)
> > +{
> > + rtnl_lock();
> > + ethtool_pse_ops = ops;
> > + rtnl_unlock();
> > +}
> > +EXPORT_SYMBOL_GPL(ethtool_set_ethtool_pse_ops);
>
> Do we really need the loose linking on the PSE ops?
> It's not a lot of code, and the pcdev->ops should be
> enough to decouple drivers, it seems.

Right now i have no good idea how to properly decouple pse-pd from phydev.

@Andrew, should i care about it on this stage or it is currently not a
big deal?

> > +static int pse_set_pse_config(struct net_device *dev,
> > + struct netlink_ext_ack *extack,
> > + struct nlattr **tb)
> > +{
> > + struct phy_device *phydev = dev->phydev;
> > + struct pse_control_config config = {};
> > + const struct ethtool_pse_ops *ops;
> > + int ret;
> > +
> > + if (!tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL])
> > + return 0;
>
> If SET has no useful attrs the usual response is -EINVAL.

ack

> > + ops = ethtool_pse_ops;
> > + if (!ops || !ops->set_config)
> > + return -EOPNOTSUPP;
> > +
> > + config.admin_cotrol = nla_get_u8(tb[ETHTOOL_A_PODL_PSE_ADMIN_CONTROL]);
> > +
> > + if (!phydev)
> > + return -EOPNOTSUPP;
> > +
> > + // todo resolve phydev dependecy
>
> My lack of phydev understanding and laziness are likely the cause,
> but I haven't found an explanation for this todo. What is it about?

sorry. old artifact, will be removed. It is part of phydev/phylink
related discussion in the last patch version.

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |