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

!3449 Fix data-races around

Merge Pull Request from: @ci-robot 
 
PR sync from: Zhengchao Shao <shaozhengchao@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/Z7JMIY3BFYDLVCBCMZ6MWOS2LYVNIVNG/ 
Fix data-races around sysctl_ip_fwd_update_priority and 
sysctl_ip_no_pmtu_disc.

Kuniyuki Iwashima (2):
  ip: Fix data-races around sysctl_ip_fwd_update_priority.
  ip: Fix data-races around sysctl_ip_no_pmtu_disc.


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/I8P5HO 
 
Link:https://gitee.com/openeuler/kernel/pulls/3449

 

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 7a3d112c 8498a1c2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -7429,14 +7429,15 @@ static int mlxsw_sp_dscp_init(struct mlxsw_sp *mlxsw_sp)

static int __mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp)
{
	bool usp = init_net.ipv4.sysctl_ip_fwd_update_priority;
	char rgcr_pl[MLXSW_REG_RGCR_LEN];
	u64 max_rifs;
	bool usp;
	int err;

	if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, MAX_RIFS))
		return -EIO;
	max_rifs = MLXSW_CORE_RES_GET(mlxsw_sp->core, MAX_RIFS);
	usp = READ_ONCE(init_net.ipv4.sysctl_ip_fwd_update_priority);

	mlxsw_reg_rgcr_pack(rgcr_pl, true, true);
	mlxsw_reg_rgcr_max_router_interfaces_set(rgcr_pl, max_rifs);
+1 −1
Original line number Diff line number Diff line
@@ -337,7 +337,7 @@ static int inet_create(struct net *net, struct socket *sock, int protocol,
			inet->hdrincl = 1;
	}

	if (net->ipv4.sysctl_ip_no_pmtu_disc)
	if (READ_ONCE(net->ipv4.sysctl_ip_no_pmtu_disc))
		inet->pmtudisc = IP_PMTUDISC_DONT;
	else
		inet->pmtudisc = IP_PMTUDISC_WANT;
+1 −1
Original line number Diff line number Diff line
@@ -898,7 +898,7 @@ static bool icmp_unreach(struct sk_buff *skb)
			 * values please see
			 * Documentation/networking/ip-sysctl.txt
			 */
			switch (net->ipv4.sysctl_ip_no_pmtu_disc) {
			switch (READ_ONCE(net->ipv4.sysctl_ip_no_pmtu_disc)) {
			default:
				net_dbg_ratelimited("%pI4: fragmentation needed and DF set\n",
						    &iph->daddr);
+1 −1
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ int ip_forward(struct sk_buff *skb)
	    !skb_sec_path(skb))
		ip_rt_send_redirect(skb);

	if (net->ipv4.sysctl_ip_fwd_update_priority)
	if (READ_ONCE(net->ipv4.sysctl_ip_fwd_update_priority))
		skb->priority = rt_tos2priority(iph->tos);

	return NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD,
+1 −1
Original line number Diff line number Diff line
@@ -231,7 +231,7 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol,
	inet->mc_list	= NULL;
	inet->rcv_tos	= 0;

	if (net->ipv4.sysctl_ip_no_pmtu_disc)
	if (READ_ONCE(net->ipv4.sysctl_ip_no_pmtu_disc))
		inet->pmtudisc = IP_PMTUDISC_DONT;
	else
		inet->pmtudisc = IP_PMTUDISC_WANT;