Unverified Commit 2025d2bd authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!3281 LTS patch backport

Merge Pull Request from: @ci-robot 
 
PR sync from: Dong Chenchen <dongchenchen2@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/Q6GZD3ELWSC3YYBGSLF5EYK3TWVKKXTB/ 
Dong Chenchen (1):
  net: fix kabi broken in struct netns_xfrm

Eric Dumazet (1):
  xfrm: fix a data-race in xfrm_gen_index()


-- 
2.25.1
 
https://gitee.com/openeuler/kernel/issues/I8MNNN 
 
Link:https://gitee.com/openeuler/kernel/pulls/3281

 

Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Reviewed-by: default avatarLiu YongQiang <liuyongqiang13@huawei.com>
Signed-off-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
parents 9a318f70 054d1dea
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -48,6 +48,9 @@ struct netns_xfrm {
	struct list_head	policy_all;
	struct hlist_head	*policy_byidx;
	unsigned int		policy_idx_hmask;
#ifndef __GENKSYMS__
	unsigned int		idx_generator;
#endif
	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];
+2 −4
Original line number Diff line number Diff line
@@ -654,8 +654,6 @@ 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;
@@ -663,8 +661,8 @@ static u32 xfrm_gen_index(struct net *net, int dir, u32 index)
		int found;

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