On Tue, Dec 20, 2016 at 10:44 PM, Shahar Klein <shah...@mellanox.com> wrote: > > Tried it with same results
This piece is pretty interesting: [ 408.554689] DEBUGG:SK thread-2853[cpu-1] setting tp_created to 1 tp=ffff94b5b02805a0 back=ffff94b9ea932060 [ 408.574258] DEBUGG:SK thread-2853[cpu-1] add/change filter by: fl_get [cls_flower] tp=ffff94b5b02805a0 tp->next=ffff94b9ea932060 [ 408.587849] DEBUGG:SK destroy ffff94b5b0280780 tcf_destroy:1905 [ 408.595862] DEBUGG:SK thread-2845[cpu-1] add/change filter by: fl_get [cls_flower] tp=ffff94b5b02805a0 tp->next=ffff94b5b02805a0 Looks like you added a debug printk inside tcf_destroy() too, which seems racy with filter creation, it should not happen since in both cases we take RTNL lock. Don't know if changing all RCU_INIT_POINTER in that file to rcu_assign_pointer could help anything or not. Mind to try? Thanks for debugging!