Revert "xfrm: fix a data-race in xfrm_gen_index()"
This reverts commit 17c75411e2
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: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
b95e67a557
commit
1427d077a0
2 changed files with 4 additions and 3 deletions
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue