On 2/15/19 8:32 AM, Paul Kocialkowski wrote: > Some PHY drivers like the generic one do not provide a read_status > callback on their own but rely on genphy_read_status being called > directly. > > With the current code, this results in a NULL function pointer call. > Call genphy_read_status instead when there is no specific callback. > > Fixes: f411a6160bd4 ("net: phy: Add gmiitorgmii converter support") > Signed-off-by: Paul Kocialkowski <paul.kocialkow...@bootlin.com> > --- > Added Fixes tag and net label for resend.
You would want to use phy_read_status() which encapsulates that check as well as checks that the phy_drv pointer is not NULL. > > drivers/net/phy/xilinx_gmii2rgmii.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/phy/xilinx_gmii2rgmii.c > b/drivers/net/phy/xilinx_gmii2rgmii.c > index 74a8782313cf..bd6084e315de 100644 > --- a/drivers/net/phy/xilinx_gmii2rgmii.c > +++ b/drivers/net/phy/xilinx_gmii2rgmii.c > @@ -44,7 +44,10 @@ static int xgmiitorgmii_read_status(struct phy_device > *phydev) > u16 val = 0; > int err; > > - err = priv->phy_drv->read_status(phydev); > + if (priv->phy_drv->read_status) > + err = priv->phy_drv->read_status(phydev); > + else > + err = genphy_read_status(phydev); > if (err < 0) > return err; > > -- Florian