net_sched: fix errno in tcindex_set_parms()
authorWANG Cong <xiyou.wangcong@gmail.com>
Thu, 25 Sep 2014 19:06:04 +0000 (12:06 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Sep 2014 21:34:22 +0000 (17:34 -0400)
When kmemdup() fails, we should return -ENOMEM.

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 e3c6fa3ea3d284e94669a3741e46adceb8f4bff3..365b23b928f437695773a46377ec808fc8051fa2 100644 (file)
@@ -237,15 +237,14 @@ tcindex_set_parms(struct net *net, struct tcf_proto *tp, unsigned long base,
        if (err < 0)
                return err;
 
+       err = -ENOMEM;
        /* tcindex_data attributes must look atomic to classifier/lookup so
         * allocate new tcindex data and RCU assign it onto root. Keeping
         * perfect hash and hash pointers from old data.
         */
        cp = kzalloc(sizeof(*cp), GFP_KERNEL);
-       if (!cp) {
-               err = -ENOMEM;
+       if (!cp)
                goto errout;
-       }
 
        cp->mask = p->mask;
        cp->shift = p->shift;