From: Heiko Stuebner <[email protected]>
Date: Mon, 15 Jun 2020 16:44:59 +0200

>  static int vsc8584_probe(struct phy_device *phydev)
>  {
>       struct vsc8531_private *vsc8531;
> +     int rc;
>       u32 default_mode[4] = {VSC8531_LINK_1000_ACTIVITY,
>          VSC8531_LINK_100_ACTIVITY, VSC8531_LINK_ACTIVITY,
>          VSC8531_DUPLEX_COLLISION};
> @@ -2005,32 +2015,24 @@ static int vsc8584_probe(struct phy_device *phydev)
>               return -ENOTSUPP;
>       }
>  
> -     vsc8531 = devm_kzalloc(&phydev->mdio.dev, sizeof(*vsc8531), GFP_KERNEL);
> -     if (!vsc8531)
> -             return -ENOMEM;

Because you removed this devm_kzalloc() code, vsc8531 is never initialized.

> +     return devm_phy_package_join(&phydev->mdio.dev, phydev,
> +                                  vsc8531->base_addr, 0);

But it is still dereferenced here.

Did the compiler really not warn you about this when you test built
these changes?

Reply via email to