net: mscc: ocelot: adjust maxlen on NPI port, not CPU
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 13 Mar 2020 13:46:51 +0000 (15:46 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Mar 2020 07:16:40 +0000 (00:16 -0700)
Being a non-physical port, the CPU port does not have an ocelot_port
structure, so the ocelot_port_writel call inside the
ocelot_port_set_maxlen() function would access data behind a NULL
pointer.

This is a patch for net-next only, the net tree boots fine, the bug was
introduced during the net -> net-next merge.

Fixes: 1d3435793123 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
Fixes: a8015ded89ad ("net: mscc: ocelot: properly account for VLAN header length when setting MRU")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mscc/ocelot.c

index 18e9ffa21cd4636afb59f3cd55920e96435575f4..dc0e273286617d955ed24092de2aeaed7ca5c0bb 100644 (file)
@@ -2341,7 +2341,7 @@ void ocelot_configure_cpu(struct ocelot *ocelot, int npi,
                else if (injection == OCELOT_TAG_PREFIX_LONG)
                        sdu += OCELOT_LONG_PREFIX_LEN;
 
-               ocelot_port_set_maxlen(ocelot, cpu, sdu);
+               ocelot_port_set_maxlen(ocelot, npi, sdu);
 
                /* Enable NPI port */
                ocelot_write_rix(ocelot,