Subject: Re: [PATCH net-next] net: phy: Also request modules for C45 IDs

From: Andrew Lunn <[email-masked]>
Date: Fri, 30 Nov 2018 22:29:13 +0100

> @@ -606,6 +606,18 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,
>  	 * there's no driver _already_ loaded.
>  	 */
>  	request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT, MDIO_ID_ARGS(phy_id));

This line above is for C22. If you look at phy_bus_match(), it will
perform a match on the c45_ids->device_ids[] if it is a c45 PHY, or
the phy_id if it is c22. So i think we should also have this one or
the other here, not both.

Thanks
	Andrew

> +	if (c45_ids) {
> +		const int num_ids = ARRAY_SIZE(c45_ids->device_ids);
> +		int i;
> +
> +		for (i = 1; i < num_ids; i++) {
> +			if (!(c45_ids->devices_in_package & (1 << i)))
> +				continue;
> +
> +			request_module(MDIO_MODULE_PREFIX MDIO_ID_FMT,
> +				       MDIO_ID_ARGS(c45_ids->device_ids[i]));
> +		}
> +	}
>  
>  	device_initialize(&mdiodev->dev);
>  
> -- 
> 2.7.4
> 
>