net: cls_basic: return from walking on match in basic_get
authorDaniel Borkmann <dborkman@redhat.com>
Thu, 22 Jan 2015 09:58:18 +0000 (10:58 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Jan 2015 00:08:55 +0000 (16:08 -0800)
As soon as we've found a matching handle in basic_get(), we can
return it. There's no need to continue walking until the end of
a filter chain, since they are unique anyway.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Acked-by: Jiri Pirko <jiri@resnulli.us>
Cc: Thomas Graf <tgraf@suug.ch>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_basic.c

index 5aed341406c2366ed5c7b50c54f113e21bd27fde..fc399db86f11b17cb05536df8f211fe79c7a3232 100644 (file)
@@ -65,9 +65,12 @@ static unsigned long basic_get(struct tcf_proto *tp, u32 handle)
        if (head == NULL)
                return 0UL;
 
-       list_for_each_entry(f, &head->flist, link)
-               if (f->handle == handle)
+       list_for_each_entry(f, &head->flist, link) {
+               if (f->handle == handle) {
                        l = (unsigned long) f;
+                       break;
+               }
+       }
 
        return l;
 }