diff options
| author | Ingo Molnar <mingo@kernel.org> | 2020-08-06 10:16:38 +0200 | 
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2020-08-06 10:16:38 +0200 | 
| commit | a703f3633ff1d982bc4adfe7e0921bedb1701216 (patch) | |
| tree | eb85b29a0bbcb29045e197ab77e18ffc8649a722 /net/xfrm/xfrm_policy.c | |
| parent | a7ef9b28aa8d72a1656fa6f0a01bbd1493886317 (diff) | |
| parent | b5e6a027bd327daa679ca55182a920659e2cbb90 (diff) | |
Merge branch 'WIP.locking/seqlocks' into locking/urgent
Pick up the full seqlock series PeterZ is working on.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'net/xfrm/xfrm_policy.c')
| -rw-r--r-- | net/xfrm/xfrm_policy.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 564aa6492e7c..732a940468b0 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -122,7 +122,7 @@ struct xfrm_pol_inexact_bin {  	/* list containing '*:*' policies */  	struct hlist_head hhead; -	seqcount_t count; +	seqcount_spinlock_t count;  	/* tree sorted by daddr/prefix */  	struct rb_root root_d; @@ -155,7 +155,7 @@ static struct xfrm_policy_afinfo const __rcu *xfrm_policy_afinfo[AF_INET6 + 1]  						__read_mostly;  static struct kmem_cache *xfrm_dst_cache __ro_after_init; -static __read_mostly seqcount_t xfrm_policy_hash_generation; +static __read_mostly seqcount_mutex_t xfrm_policy_hash_generation;  static struct rhashtable xfrm_policy_inexact_table;  static const struct rhashtable_params xfrm_pol_inexact_params; @@ -719,7 +719,7 @@ xfrm_policy_inexact_alloc_bin(const struct xfrm_policy *pol, u8 dir)  	INIT_HLIST_HEAD(&bin->hhead);  	bin->root_d = RB_ROOT;  	bin->root_s = RB_ROOT; -	seqcount_init(&bin->count); +	seqcount_spinlock_init(&bin->count, &net->xfrm.xfrm_policy_lock);  	prev = rhashtable_lookup_get_insert_key(&xfrm_policy_inexact_table,  						&bin->k, &bin->head, @@ -1906,7 +1906,7 @@ static int xfrm_policy_match(const struct xfrm_policy *pol,  static struct xfrm_pol_inexact_node *  xfrm_policy_lookup_inexact_addr(const struct rb_root *r, -				seqcount_t *count, +				seqcount_spinlock_t *count,  				const xfrm_address_t *addr, u16 family)  {  	const struct rb_node *parent; @@ -4153,7 +4153,7 @@ void __init xfrm_init(void)  {  	register_pernet_subsys(&xfrm_net_ops);  	xfrm_dev_init(); -	seqcount_init(&xfrm_policy_hash_generation); +	seqcount_mutex_init(&xfrm_policy_hash_generation, &hash_resize_mutex);  	xfrm_input_init();  #ifdef CONFIG_INET_ESPINTCP  | 
