net_sched: fix another regression in cls_tcindex
authorWANG Cong <xiyou.wangcong@gmail.com>
Thu, 25 Sep 2014 19:06:05 +0000 (12:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Sep 2014 21:34:35 +0000 (17:34 -0400)
Clearly the following change is not expected:

-       if (!cp.perfect && !cp.h)
-               cp.alloc_hash = cp.hash;
+       if (!cp->perfect && cp->h)
+               cp->alloc_hash = cp->hash;

Fixes: commit 331b72922c5f58d48fd ("net: sched: RCU cls_tcindex")
Cc: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_tcindex.c

index 365b23b928f437695773a46377ec808fc8051fa2..8d0e83d6903e69672a54cfd332cb92817f2d7eb0 100644 (file)
@@ -303,7 +303,7 @@ tcindex_set_parms(struct net *net, struct tcf_proto *tp, unsigned long base,
                        cp->hash = DEFAULT_HASH_SIZE;
        }
 
-       if (!cp->perfect && cp->h)
+       if (!cp->perfect && !cp->h)
                cp->alloc_hash = cp->hash;
 
        /* Note: this could be as restrictive as if (handle & ~(mask >> shift))