]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: flower: track filter deletion with flag
authorVlad Buslov <vladbu@mellanox.com>
Thu, 21 Mar 2019 13:17:36 +0000 (15:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Mar 2019 21:32:17 +0000 (14:32 -0700)
commit6903eb060e3c67fb5f77d863c75b7d2c4c6e17bb
tree3042c0c081a606768562826789af2ad4568a2358
parentf09e9d12b02b5e27be991f491bbc4464461c9c4b
net: sched: flower: track filter deletion with flag

In order to prevent double deletion of filter by concurrent tasks when rtnl
lock is not used for synchronization, add 'deleted' filter field. Check
value of this field when modifying filters and return error if concurrent
deletion is detected.

Refactor __fl_delete() to accept pointer to 'last' boolean as argument,
and return error code as function return value instead. This is necessary
to signal concurrent filter delete to caller.

Signed-off-by: Vlad Buslov <vladbu@mellanox.com>
Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_flower.c