Subject: Re: [PATCH net-next 05/10] net: phy: introduce a phy_driver macsec helper

From: Andrew Lunn <[email-masked]>
Date: Wed, 23 Jan 2019 18:08:16 +0100

> +int phy_macsec(struct phy_device *phydev, struct netdev_macsec *macsec)
> +{
> +	int ret = -EOPNOTSUPP;
> +
> +	if (!phydev->drv)
> +		return -EIO;
> +
> +	mutex_lock(&phydev->lock);
> +
> +	if (phydev->drv->macsec)
> +		ret = phydev->drv->macsec(phydev, macsec);
> +
> +	mutex_unlock(&phydev->lock);
> +	return ret;
> +}
> +EXPORT_SYMBOL_GPL(phy_macsec);
> +

> @@ -630,6 +634,10 @@ struct phy_driver {
>  			    struct ethtool_tunable *tuna,
>  			    const void *data);
>  	int (*set_loopback)(struct phy_device *dev, bool enable);
> +
> +#ifdef CONFIG_MACSEC
> +	int (*macsec)(struct phy_device *dev, struct netdev_macsec *macsec);
> +#endif

Hi Antoine

So the member only exists if CONFIG_MACSEC is defined. So i think you
need similar protection in phy_macsec() or you are going to try to
access a member which sometimes does not exist.

       Andrew