]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: mscc: ocelot: fix address ageing time (again)
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 21 May 2020 21:31:23 +0000 (00:31 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Jun 2020 06:22:58 +0000 (08:22 +0200)
commit bf655ba212dfd10d1c86afeee3f3372dbd731d46 upstream.

ocelot_set_ageing_time has 2 callers:
 - felix_set_ageing_time: from drivers/net/dsa/ocelot/felix.c
 - ocelot_port_attr_ageing_set: from drivers/net/ethernet/mscc/ocelot.c

The issue described in the fixed commit below actually happened for the
felix_set_ageing_time code path only, since ocelot_port_attr_ageing_set
was already dividing by 1000. So to make both paths symmetrical (and to
fix addresses getting aged way too fast on Ocelot), stop dividing by
1000 at caller side altogether.

Fixes: c0d7eccbc761 ("net: mscc: ocelot: ANA_AUTOAGE_AGE_PERIOD holds a value in seconds, not ms")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mscc/ocelot.c

index 419e2ce2eac0795bac8586c3984b743cf1d47cd6..d5aa4e725853e0d11ae6a7a70336ff07c1320511 100644 (file)
@@ -1460,7 +1460,7 @@ static void ocelot_port_attr_ageing_set(struct ocelot *ocelot, int port,
                                        unsigned long ageing_clock_t)
 {
        unsigned long ageing_jiffies = clock_t_to_jiffies(ageing_clock_t);
-       u32 ageing_time = jiffies_to_msecs(ageing_jiffies) / 1000;
+       u32 ageing_time = jiffies_to_msecs(ageing_jiffies);
 
        ocelot_set_ageing_time(ocelot, ageing_time);
 }