Re: linux-next: manual merge of the net-next tree with the net tree

From: Vladimir Oltean
Date: Wed Mar 11 2020 - 05:50:34 EST


Hi Stephen,

On Wed, 11 Mar 2020 at 03:34, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi all,
>
> Today's linux-next merge of the net-next tree got a conflict in:
>
> drivers/net/ethernet/mscc/ocelot.c
>
> between commit:
>
> a8015ded89ad ("net: mscc: ocelot: properly account for VLAN header length when setting MRU")
>
> from the net tree and commit:
>
> 69df578c5f4b ("net: mscc: ocelot: eliminate confusion between CPU and NPI port")
>
> from the net-next tree.
>
> I fixed it up (I think - see below) and can carry the fix as
> necessary. This is now fixed as far as linux-next is concerned, but any
> non trivial conflicts should be mentioned to your upstream maintainer
> when your tree is submitted for merging. You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc drivers/net/ethernet/mscc/ocelot.c
> index d3b7373c5961,06f9d013f807..000000000000
> --- a/drivers/net/ethernet/mscc/ocelot.c
> +++ b/drivers/net/ethernet/mscc/ocelot.c
> @@@ -2310,27 -2323,34 +2329,34 @@@ void ocelot_configure_cpu(struct ocelo
> ANA_PORT_PORT_CFG_PORTID_VAL(cpu),
> ANA_PORT_PORT_CFG, cpu);
>
> - /* If the CPU port is a physical port, set up the port in Node
> - * Processor Interface (NPI) mode. This is the mode through which
> - * frames can be injected from and extracted to an external CPU.
> - * Only one port can be an NPI at the same time.
> - */
> - if (cpu < ocelot->num_phys_ports) {
> + if (npi >= 0 && npi < ocelot->num_phys_ports) {
> - int mtu = VLAN_ETH_FRAME_LEN + OCELOT_TAG_LEN;
> + int sdu = ETH_DATA_LEN + OCELOT_TAG_LEN;
>
> ocelot_write(ocelot, QSYS_EXT_CPU_CFG_EXT_CPUQ_MSK_M |
> - QSYS_EXT_CPU_CFG_EXT_CPU_PORT(cpu),
> + QSYS_EXT_CPU_CFG_EXT_CPU_PORT(npi),
> QSYS_EXT_CPU_CFG);
>
> if (injection == OCELOT_TAG_PREFIX_SHORT)
> - mtu += OCELOT_SHORT_PREFIX_LEN;
> + sdu += OCELOT_SHORT_PREFIX_LEN;
> else if (injection == OCELOT_TAG_PREFIX_LONG)
> - mtu += OCELOT_LONG_PREFIX_LEN;
> + sdu += OCELOT_LONG_PREFIX_LEN;
>
> - ocelot_port_set_maxlen(ocelot, cpu, sdu);
> - ocelot_port_set_mtu(ocelot, npi, mtu);
> ++ ocelot_port_set_maxlen(ocelot, npi, sdu);
> +
> + /* Enable NPI port */
> + ocelot_write_rix(ocelot,
> + QSYS_SWITCH_PORT_MODE_INGRESS_DROP_MODE |
> + QSYS_SWITCH_PORT_MODE_SCH_NEXT_CFG(1) |
> + QSYS_SWITCH_PORT_MODE_PORT_ENA,
> + QSYS_SWITCH_PORT_MODE, npi);
> + /* NPI port Injection/Extraction configuration */
> + ocelot_write_rix(ocelot,
> + SYS_PORT_MODE_INCL_XTR_HDR(extraction) |
> + SYS_PORT_MODE_INCL_INJ_HDR(injection),
> + SYS_PORT_MODE, npi);
> }
>
> - /* CPU port Injection/Extraction configuration */
> + /* Enable CPU port module */
> ocelot_write_rix(ocelot, QSYS_SWITCH_PORT_MODE_INGRESS_DROP_MODE |
> QSYS_SWITCH_PORT_MODE_SCH_NEXT_CFG(1) |
> QSYS_SWITCH_PORT_MODE_PORT_ENA,

What would be the takeaway here? I did bring the fact that it will
conflict to David's attention here, not sure what else should have
been done:
https://www.spinics.net/lists/netdev/msg636207.html
The conflict resolution looks fine btw, I've tested linux-next and it
also works.

Thanks,
-Vladimir