git: 5bfc014f2345 - main - udp6: inline udp6_output() into udp6_send()

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Wed, 07 Dec 2022 19:52:01 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=5bfc014f23452367c9ddcabc5a183b4ee975932d

commit 5bfc014f23452367c9ddcabc5a183b4ee975932d
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2022-12-07 19:51:48 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2022-12-07 19:51:48 +0000

    udp6: inline udp6_output() into udp6_send()
---
 sys/netinet6/udp6_usrreq.c | 42 ++++++++++++++----------------------------
 1 file changed, 14 insertions(+), 28 deletions(-)

diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c
index 2d309d938056..79fe7d4cc0fb 100644
--- a/sys/netinet6/udp6_usrreq.c
+++ b/sys/netinet6/udp6_usrreq.c
@@ -657,7 +657,7 @@ SYSCTL_PROC(_net_inet6_udp6, OID_AUTO, getcred,
     "Get the xucred of a UDP6 connection");
 
 static int
-udp6_output(struct socket *so, int flags_arg, struct mbuf *m,
+udp6_send(struct socket *so, int flags_arg, struct mbuf *m,
     struct sockaddr *addr6, struct mbuf *control, struct thread *td)
 {
 	struct inpcb *inp;
@@ -673,7 +673,19 @@ udp6_output(struct socket *so, int flags_arg, struct mbuf *m,
 	u_short fport;
 	uint8_t nxt;
 
-	/* addr6 has been validated in udp6_send(). */
+	if (addr6) {
+		error = 0;
+		if (addr6->sa_family != AF_INET6)
+			error = EAFNOSUPPORT;
+		else if (addr6->sa_len != sizeof(struct sockaddr_in6))
+			error = EINVAL;
+		if (__predict_false(error != 0)) {
+			m_freem(control);
+			m_freem(m);
+			return (error);
+		}
+	}
+
 	sin6 = (struct sockaddr_in6 *)addr6;
 
 	/*
@@ -1243,32 +1255,6 @@ udp6_disconnect(struct socket *so)
 	return (0);
 }
 
-static int
-udp6_send(struct socket *so, int flags, struct mbuf *m,
-    struct sockaddr *addr, struct mbuf *control, struct thread *td)
-{
-	int error;
-
-	if (addr) {
-		if (addr->sa_len != sizeof(struct sockaddr_in6)) {
-			error = EINVAL;
-			goto bad;
-		}
-		if (addr->sa_family != AF_INET6) {
-			error = EAFNOSUPPORT;
-			goto bad;
-		}
-	}
-
-	return (udp6_output(so, flags, m, addr, control, td));
-
-bad:
-	if (control)
-		m_freem(control);
-	m_freem(m);
-	return (error);
-}
-
 #define	UDP6_PROTOSW							\
 	.pr_type =		SOCK_DGRAM,				\
 	.pr_flags =		PR_ATOMIC|PR_ADDR|PR_CAPATTACH,		\