Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9dffff20 authored by Florian Westphal's avatar Florian Westphal Committed by Steffen Klassert
Browse files

xfrm: policy: use hlist rcu variants on insert



bydst table/list lookups use rcu, so insertions must use rcu versions.

Fixes: a7c44247 ("xfrm: policy: make xfrm_policy_lookup_bytype lockless")
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
parent 9f7e43da
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -632,9 +632,9 @@ static void xfrm_hash_rebuild(struct work_struct *work)
				break;
		}
		if (newpos)
			hlist_add_behind(&policy->bydst, newpos);
			hlist_add_behind_rcu(&policy->bydst, newpos);
		else
			hlist_add_head(&policy->bydst, chain);
			hlist_add_head_rcu(&policy->bydst, chain);
	}

	spin_unlock_bh(&net->xfrm.xfrm_policy_lock);
@@ -774,9 +774,9 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
			break;
	}
	if (newpos)
		hlist_add_behind(&policy->bydst, newpos);
		hlist_add_behind_rcu(&policy->bydst, newpos);
	else
		hlist_add_head(&policy->bydst, chain);
		hlist_add_head_rcu(&policy->bydst, chain);
	__xfrm_policy_link(policy, dir);

	/* After previous checking, family can either be AF_INET or AF_INET6 */