lkml.org 
[lkml]   [2019]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 22/69] net/sched: fix ->get helper of the matchall cls
    Date
    From: Nicolas Dichtel <nicolas.dichtel@6wind.com>

    [ Upstream commit 0db6f8befc32c68bb13d7ffbb2e563c79e913e13 ]

    It returned always NULL, thus it was never possible to get the filter.

    Example:
    $ ip link add foo type dummy
    $ ip link add bar type dummy
    $ tc qdisc add dev foo clsact
    $ tc filter add dev foo protocol all pref 1 ingress handle 1234 \
    matchall action mirred ingress mirror dev bar

    Before the patch:
    $ tc filter get dev foo protocol all pref 1 ingress handle 1234 matchall
    Error: Specified filter handle not found.
    We have an error talking to the kernel

    After:
    $ tc filter get dev foo protocol all pref 1 ingress handle 1234 matchall
    filter ingress protocol all pref 1 matchall chain 0 handle 0x4d2
    not_in_hw
    action order 1: mirred (Ingress Mirror to device bar) pipe
    index 1 ref 1 bind 1

    CC: Yotam Gigi <yotamg@mellanox.com>
    CC: Jiri Pirko <jiri@mellanox.com>
    Fixes: fd62d9f5c575 ("net/sched: matchall: Fix configuration race")
    Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    net/sched/cls_matchall.c | 5 +++++
    1 file changed, 5 insertions(+)

    --- a/net/sched/cls_matchall.c
    +++ b/net/sched/cls_matchall.c
    @@ -125,6 +125,11 @@ static void mall_destroy(struct tcf_prot

    static void *mall_get(struct tcf_proto *tp, u32 handle)
    {
    + struct cls_mall_head *head = rtnl_dereference(tp->root);
    +
    + if (head && head->handle == handle)
    + return head;
    +
    return NULL;
    }


    \
     
     \ /
      Last update: 2019-04-15 21:02    [W:4.364 / U:0.556 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site