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

Commit 1427d077 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "xfrm: fix a data-race in xfrm_gen_index()"



This reverts commit 17c75411 which is
commit 3e4bc23926b83c3c67e5f61ae8571602754131a6 upstream.

It breaks the android ABI and if this is needed in the future, can be
brought back in an abi-safe way.

Bug: 161946584
Change-Id: I6af8ce540570c756ea9f16526c36f8815971e216
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent b95e67a5
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ struct netns_xfrm {
	struct list_head	policy_all;
	struct hlist_head	*policy_byidx;
	unsigned int		policy_idx_hmask;
	unsigned int		idx_generator;
	struct hlist_head	policy_inexact[XFRM_POLICY_MAX];
	struct xfrm_policy_hash	policy_bydst[XFRM_POLICY_MAX];
	unsigned int		policy_count[XFRM_POLICY_MAX * 2];
+4 −2
Original line number Diff line number Diff line
@@ -654,6 +654,8 @@ EXPORT_SYMBOL(xfrm_policy_hash_rebuild);
 * of an absolute inpredictability of ordering of rules. This will not pass. */
static u32 xfrm_gen_index(struct net *net, int dir, u32 index)
{
	static u32 idx_generator;

	for (;;) {
		struct hlist_head *list;
		struct xfrm_policy *p;
@@ -661,8 +663,8 @@ static u32 xfrm_gen_index(struct net *net, int dir, u32 index)
		int found;

		if (!index) {
			idx = (net->xfrm.idx_generator | dir);
			net->xfrm.idx_generator += 8;
			idx = (idx_generator | dir);
			idx_generator += 8;
		} else {
			idx = index;
			index = 0;