]> git.baikalelectronics.ru Git - kernel.git/commit
net: sched: cls_basic use RCU
authorJohn Fastabend <john.fastabend@gmail.com>
Sat, 13 Sep 2014 03:05:59 +0000 (20:05 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 13 Sep 2014 16:29:59 +0000 (12:29 -0400)
commitaba8ab16796400527fb427875a1b8c4365655f26
treea65bd7a2dc103bf93d50a1234f0db37a749f608b
parenta522f841e44c27f6c96382e8fa92dde91113b9f2
net: sched: cls_basic use RCU

Enable basic classifier for RCU.

Dereferencing tp->root may look a bit strange here but it is needed
by my accounting because it is allocated at init time and needs to
be kfree'd at destroy time. However because it may be referenced in
the classify() path we must wait an RCU grace period before free'ing
it. We use kfree_rcu() and rcu_ APIs to enforce this. This pattern
is used in all the classifiers.

Also the hgenerator can be incremented without concern because it
is always incremented under RTNL.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_basic.c