cls_flower: Fix comparing of old filter mask with new filter
authorPaul Blakey <paulb@mellanox.com>
Sun, 3 Jun 2018 07:06:14 +0000 (10:06 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 Jun 2018 21:03:37 +0000 (17:03 -0400)
We incorrectly compare the mask and the result is that we can't modify
an already existing rule.

Fix that by comparing correctly.

Fixes: 05cd271fd61a ("cls_flower: Support multiple masks per priority")
Reported-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Roi Dayan <roid@mellanox.com>
Reviewed-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Paul Blakey <paulb@mellanox.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_flower.c

index 159efd98ee9ab2a4e728813d24f0f1ee0c486dc9..2b5be42a9f1ca8e63952158ed2b9339e1a308d0b 100644 (file)
@@ -877,7 +877,7 @@ static int fl_check_assign_mask(struct cls_fl_head *head,
                        return PTR_ERR(newmask);
 
                fnew->mask = newmask;
-       } else if (fold && fold->mask == fnew->mask) {
+       } else if (fold && fold->mask != fnew->mask) {
                return -EINVAL;
        }