RE: [PATCH net v3 1/3] net: phylink: add phylink_expects_phy() method

From: Sit, Michael Wei Hong
Date: Wed Mar 29 2023 - 05:34:32 EST




> -----Original Message-----
> From: Russell King <linux@xxxxxxxxxxxxxxx>
> Sent: Wednesday, March 29, 2023 5:01 PM
> To: Jakub Kicinski <kuba@xxxxxxxxxx>
> Cc: Sit, Michael Wei Hong <michael.wei.hong.sit@xxxxxxxxx>;
> Giuseppe Cavallaro <peppe.cavallaro@xxxxxx>; Alexandre Torgue
> <alexandre.torgue@xxxxxxxxxxx>; Jose Abreu
> <joabreu@xxxxxxxxxxxx>; David S . Miller <davem@xxxxxxxxxxxxx>;
> Eric Dumazet <edumazet@xxxxxxxxxx>; Paolo Abeni
> <pabeni@xxxxxxxxxx>; Maxime Coquelin
> <mcoquelin.stm32@xxxxxxxxx>; Ong, Boon Leong
> <boon.leong.ong@xxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx; linux-arm-
> kernel@xxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Looi,
> Hong Aun <hong.aun.looi@xxxxxxxxx>; Voon, Weifeng
> <weifeng.voon@xxxxxxxxx>; Lai, Peter Jun Ann
> <peter.jun.ann.lai@xxxxxxxxx>
> Subject: Re: [PATCH net v3 1/3] net: phylink: add
> phylink_expects_phy() method
>
> On Tue, Mar 28, 2023 at 06:57:20PM -0700, Jakub Kicinski wrote:
> > On Fri, 24 Mar 2023 16:16:54 +0800 Michael Sit Wei Hong wrote:
> > > Provide phylink_expects_phy() to allow MAC drivers to check if it
> is
> > > expecting a PHY to attach to. Since fixed-linked setups do not
> need
> > > to attach to a PHY.
> > >
> > > Provides a boolean value as to if the MAC should expect a PHY.
> > > returns true if a PHY is expected.
> > >
> > > Signed-off-by: Michael Sit Wei Hong
> <michael.wei.hong.sit@xxxxxxxxx>
> >
> > Russell, looks good?
>
> Not really, given that phylink_attach_phy() will refuse to attach a
> PHY
> when:
>
> if (WARN_ON(pl->cfg_link_an_mode == MLO_AN_FIXED ||
> (pl->cfg_link_an_mode == MLO_AN_INBAND &&
> phy_interface_mode_is_8023z(interface) && !pl-
> >sfp_bus)))
> return -EINVAL;
>
> So, if we introduce a helper named "phylink_expects_phy" that
> returns true when cfg_link_an_mode == MLO_AN_INBAND and the
> interface mode is e.g. 1000base-X, but then someone tries to attach
> a PHY, the kernel spits out a warning, backtrace, and a return value
> of -EINVAL, things are going to look really rather stupid.
>
Should we check for these 3 conditions as well then?
(pl->cfg_link_an_mode == MLO_AN_INBAND &&
phy_interface_mode_is_8023z(interface) && !pl->sfp_bus)
to determine if phylink expects a phy.

> --
> RMK's Patch system:
> https://www.armlinux.org.uk/developer/patches/
> FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!