neigh: fix setting of default gc_* values
authorJiri Pirko <jiri@resnulli.us>
Fri, 21 Feb 2014 13:52:57 +0000 (14:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 22 Feb 2014 05:08:10 +0000 (00:08 -0500)
This patch fixes bug introduced by:
commit 1d4c8c29841b9991cdf3c7cc4ba7f96a94f104ca
"neigh: restore old behaviour of default parms values"

The thing is that in neigh_sysctl_register, extra1 and extra2 which were
previously set for NEIGH_VAR_GC_* are overwritten. That leads to
nonsense int limits for gc_* variables. So fix this by not touching
extra* fields for gc_* variables.

Signed-off-by: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/neighbour.c

index b9e9e0d38672a8ca9a17f8d6ec8daf88b8a09a65..e1aa0f36cfe70ffc94605f4d4c86d9d281b75060 100644 (file)
@@ -3046,7 +3046,7 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
        if (!t)
                goto err;
 
-       for (i = 0; i < ARRAY_SIZE(t->neigh_vars); i++) {
+       for (i = 0; i < NEIGH_VAR_GC_INTERVAL; i++) {
                t->neigh_vars[i].data += (long) p;
                t->neigh_vars[i].extra1 = dev;
                t->neigh_vars[i].extra2 = p;