]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
xfrm: policy: prepare policy_bydst hash for rcu lookups
authorFlorian Westphal <fw@strlen.de>
Thu, 11 Aug 2016 13:17:53 +0000 (15:17 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Fri, 12 Aug 2016 06:07:11 +0000 (08:07 +0200)
commite1e551bc56302b80ff930c966f9985095fb1b70d
treebabb24413c09e1ab5ca3a6d690320b05d499204f
parenta5eefc1df641f3c99fe54b309e7b79c18cec4a1e
xfrm: policy: prepare policy_bydst hash for rcu lookups

Since commit 56f047305dd4b6b617
("xfrm: add rcu grace period in xfrm_policy_destroy()") xfrm policy
objects are already free'd via rcu.

In order to make more places lockless (i.e. use rcu_read_lock instead of
grabbing read-side of policy rwlock) we only need to:

- use rcu_assign_pointer to store address of new hash table backend memory
- add rcu barrier so that freeing of old memory is delayed (expansion
  and free happens from system workqueue, so synchronize_rcu is fine)
- use rcu_dereference to fetch current address of the hash table.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_policy.c