Subject: Re: [PATCH net] net: dsa: fix older DSA drivers using phylink - manual merge

From: "Russell King (Oracle)" <[email-masked]>
Date: Fri, 28 Jul 2023 11:37:25 +0100

On Fri, Jul 28, 2023 at 12:23:25PM +0200, Matthieu Baerts wrote:
> Hi Russell,
> 
> On 26/07/2023 16:45, Russell King (Oracle) wrote:
> > Older DSA drivers that do not provide an dsa_ops adjust_link method end
> > up using phylink. Unfortunately, a recent phylink change that requires
> > its supported_interfaces bitmap to be filled breaks these drivers
> > because the bitmap remains empty.
> > 
> > Rather than fixing each driver individually, fix it in the core code so
> > we have a sensible set of defaults.
> > 
> > Reported-by: Sergei Antonov <[email-masked]>
> > Fixes: de5c9bf40c45 ("net: phylink: require supported_interfaces to be filled")
> > Signed-off-by: Russell King (Oracle) <[email-masked]>
> 
> FYI, we got a small conflict when merging 'net' in 'net-next' in the
> MPTCP tree due to this patch applied in 'net':
> 
>   9945c1fb03a3 ("net: dsa: fix older DSA drivers using phylink")
> 
> and this one from 'net-next':
> 
>   a88dd7538461 ("net: dsa: remove legacy_pre_march2020 detection")

It was unavoidable.

> ----- Generic Message -----
> The best is to avoid conflicts between 'net' and 'net-next' trees but if
> they cannot be avoided when preparing patches, a note about how to fix
> them is much appreciated.

Given that this is a trivial context-based conflict, it wasn't worth it.
If it was a conflict that actually involved two changes touching the
same lines of code, then yes, that would be sensible.

Note that I don't get these messages from the netdev maintainers when
they update net-next (as they did last night.)

>   
> - 	if (ds->ops->phylink_get_caps)
>  -	/* Presence of phylink_mac_link_state or phylink_mac_an_restart is
>  -	 * an indicator of a legacy phylink driver.
>  -	 */
>  -	if (ds->ops->phylink_mac_link_state ||
>  -	    ds->ops->phylink_mac_an_restart)
>  -		dp->pl_config.legacy_pre_march2020 = true;
>  -
> + 	if (ds->ops->phylink_get_caps) {
>   		ds->ops->phylink_get_caps(ds, dp->index, &dp->pl_config);
> + 	} else {
> + 		/* For legacy drivers */
> + 		__set_bit(PHY_INTERFACE_MODE_INTERNAL,
> + 			  dp->pl_config.supported_interfaces);
> + 		__set_bit(PHY_INTERFACE_MODE_GMII,
> + 			  dp->pl_config.supported_interfaces);
> + 	}

Of course, being a purely context-based conflict, that is correct.

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