cls_bpf: Convert to use idr_alloc_u32
authorMatthew Wilcox <mawilcox@microsoft.com>
Tue, 28 Nov 2017 15:46:29 +0000 (10:46 -0500)
committerMatthew Wilcox <mawilcox@microsoft.com>
Tue, 6 Feb 2018 21:41:26 +0000 (16:41 -0500)
Use the new helper.  This has a modest reduction in both lines of code
and compiled code size.

Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
net/sched/cls_bpf.c

index 8cb3a33..b07c1fa 100644 (file)
@@ -471,7 +471,6 @@ static int cls_bpf_change(struct net *net, struct sk_buff *in_skb,
        struct cls_bpf_prog *oldprog = *arg;
        struct nlattr *tb[TCA_BPF_MAX + 1];
        struct cls_bpf_prog *prog;
-       unsigned long idr_index;
        int ret;
 
        if (tca[TCA_OPTIONS] == NULL)
@@ -498,21 +497,18 @@ static int cls_bpf_change(struct net *net, struct sk_buff *in_skb,
        }
 
        if (handle == 0) {
-               ret = idr_alloc_ext(&head->handle_idr, prog, &idr_index,
-                                   1, 0x7FFFFFFF, GFP_KERNEL);
-               if (ret)
-                       goto errout;
-               prog->handle = idr_index;
-       } else {
-               if (!oldprog) {
-                       ret = idr_alloc_ext(&head->handle_idr, prog, &idr_index,
-                                           handle, handle + 1, GFP_KERNEL);
-                       if (ret)
-                               goto errout;
-               }
-               prog->handle = handle;
+               handle = 1;
+               ret = idr_alloc_u32(&head->handle_idr, prog, &handle,
+                                   INT_MAX, GFP_KERNEL);
+       } else if (!oldprog) {
+               ret = idr_alloc_u32(&head->handle_idr, prog, &handle,
+                                   handle, GFP_KERNEL);
        }
 
+       if (ret)
+               goto errout;
+       prog->handle = handle;
+
        ret = cls_bpf_set_parms(net, tp, prog, base, tb, tca[TCA_RATE], ovr,
                                extack);
        if (ret < 0)