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

!9324 v2 Linux 4.19.312-313 LTS patches

Merge Pull Request from: @ci-robot 
 
PR sync from: Liu Jian <liujian56@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/WQEKSFEADQYTXXS4VHIQJZVCZP5WW3GP/ 
some network LTS patches

Dai Ngo (1):
  SUNRPC: increase size of rpc_wait_queue.qlen from unsigned short to
    unsigned int

Daniel Borkmann (1):
  vxlan: Fix regression when dropping packets due to invalid src
    addresses

David Bauer (1):
  vxlan: drop packets from invalid src-address

Jiri Benc (1):
  ipv6: fix race condition between ipv6_get_ifaddr and ipv6_del_addr

Yick Xie (1):
  udp: preserve the connected status if only UDP cmsg


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/IA7EK1 
 
Link:https://gitee.com/openeuler/kernel/pulls/9324

 

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 3441ff8f 17abb7d1
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1014,6 +1014,10 @@ static bool vxlan_snoop(struct net_device *dev,
	struct vxlan_fdb *f;
	u32 ifindex = 0;

	/* Ignore packets from invalid src-address */
	if (!is_valid_ether_addr(src_mac))
		return true;

#if IS_ENABLED(CONFIG_IPV6)
	if (src_ip->sa.sa_family == AF_INET6 &&
	    (ipv6_addr_type(&src_ip->sin6.sin6_addr) & IPV6_ADDR_LINKLOCAL))
+1 −1
Original line number Diff line number Diff line
@@ -191,7 +191,7 @@ struct rpc_wait_queue {
	unsigned char		maxpriority;		/* maximum priority (0 if queue is not a priority queue) */
	unsigned char		priority;		/* current priority */
	unsigned char		nr;			/* # tasks remaining for cookie */
	unsigned short		qlen;			/* total # tasks waiting in queue */
	unsigned int		qlen;			/* total # tasks waiting in queue */
	struct rpc_timer	timer_list;
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
	const char *		name;
+4 −0
Original line number Diff line number Diff line
@@ -443,6 +443,10 @@ static inline void in6_ifa_hold(struct inet6_ifaddr *ifp)
	refcount_inc(&ifp->refcnt);
}

static inline bool in6_ifa_hold_safe(struct inet6_ifaddr *ifp)
{
	return refcount_inc_not_zero(&ifp->refcnt);
}

/*
 *	compute link-local solicited-node multicast address
+3 −2
Original line number Diff line number Diff line
@@ -998,16 +998,17 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)

	if (msg->msg_controllen) {
		err = udp_cmsg_send(sk, msg, &ipc.gso_size);
		if (err > 0)
		if (err > 0) {
			err = ip_cmsg_send(sk, msg, &ipc,
					   sk->sk_family == AF_INET6);
			connected = 0;
		}
		if (unlikely(err < 0)) {
			kfree(ipc.opt);
			return err;
		}
		if (ipc.opt)
			free = 1;
		connected = 0;
	}
	if (!ipc.opt) {
		struct ip_options_rcu *inet_opt;
+4 −3
Original line number Diff line number Diff line
@@ -1954,12 +1954,13 @@ struct inet6_ifaddr *ipv6_get_ifaddr(struct net *net, const struct in6_addr *add
		if (ipv6_addr_equal(&ifp->addr, addr)) {
			if (!dev || ifp->idev->dev == dev ||
			    !(ifp->scope&(IFA_LINK|IFA_HOST) || strict)) {
				if (in6_ifa_hold_safe(ifp)) {
					result = ifp;
				in6_ifa_hold(ifp);
					break;
				}
			}
		}
	}
	rcu_read_unlock();

	return result;
Loading