From nobody Wed Dec 7 19:52:00 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NS7GS6x3zz4jgf9; Wed, 7 Dec 2022 19:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NS7GS6LL2z3MvR; Wed, 7 Dec 2022 19:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1670442720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSqhpjn/20qoojrJo8vHfNQTYbQ7iG6sbt7grd83ufo=; b=ktS44DMf2DF4Ah1DwzsGlbPqQQWTHm7YA+HnwoQPdd5Ym4F9aMTfhJqUswSejTYxsVXZCt UvDlT4xKsA5eeG3W6W5lKT50M76foIt8aXCzLqHhqY+1Uhc5gqmUIkRRl/MI7Fb8GA6owU rvgRfieuyl0eSfPjSzPVtE42zL+Sjxp/Okl/36K3g0SOUlNqx9YDj5c84MOo9uRm0EiVUo Xgz7sjTP0LwixNrCE3dk0hx9nUzVKnIwK2WCZULFY1pqRH7aaI4syLSkOJoRiUImqhjn+E skhZaDAUvUyoawiEBvXLKf6OZC++BV3M8Y3VUPlS/inrvUIF/r/2FxaBe8RHRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1670442720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nSqhpjn/20qoojrJo8vHfNQTYbQ7iG6sbt7grd83ufo=; b=Liooc+b8LhstBHpA/Wb3AvUglsDRae+2ucumCYyz9PWn8GnPNAwit9aJzTe6FgGDLpWpyA bIywcyS+E+yRhIGT8UKyq4BnqdLx3YGl/LFxOgPt2A+LZ6z0Z0WCg6KoK7M76Uyw4T9aOd dA7x3ejgXxp5zByD7pHuCef5SPP26Kci68rF/T9zmKCCa7C9K4oCH6ckwtA9wTf+L/+7RI ZpUFjG92WKUV5Gvyzx9Gl+mCLzv8z1CGJQ33K5YzXTXvrct1QM3A4MKPZh46X27YU9/zoi 51xW1+0CnZJq3TGcKmRL9xpJrRd47IsHg7aA5Hw+KYdjCrtNvKfctDN7zOP41A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1670442720; a=rsa-sha256; cv=none; b=pbHat8RKfB36uME3rKEJV3Thy5U096lAob/ASoK5x3u/8AUicqPd9Nq+hotqZSvRkeknX/ j6zget+QImGuKk355yfj/SacLaSlCFELyMhdJpgqAjVlQ/AzjYQN7Ekt+FYazMI8fdDnR3 240xJu1VWWVmA7IPf49Re8FkjjLr95PCeVztYeTo8Iam1NiuIlrfOUDbgdRSHpDx5MG0i5 VNRRc4mO31Hj2pvp7POq1rV+wwlP1xT8dOtqOH7zrAWuYsWiDGoKF/PkfMLDZZUUn4CJ/S NXsomcY1Fkgh7WcsV6e2N+QIa19K6fzPGh0Vzud1bXVlT2BKOrWq5TPbaPbBgw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NS7GS5RM5zTqn; Wed, 7 Dec 2022 19:52:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2B7Jq0sO028223; Wed, 7 Dec 2022 19:52:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2B7Jq0JF028222; Wed, 7 Dec 2022 19:52:00 GMT (envelope-from git) Date: Wed, 7 Dec 2022 19:52:00 GMT Message-Id: <202212071952.2B7Jq0JF028222@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Gleb Smirnoff Subject: git: 32920f038a3a - main - udp: inline udp_output() into udp_send() List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: glebius X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 32920f038a3a0f6778983e15228103e4da9c3007 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=32920f038a3a0f6778983e15228103e4da9c3007 commit 32920f038a3a0f6778983e15228103e4da9c3007 Author: Gleb Smirnoff AuthorDate: 2022-12-07 19:51:48 +0000 Commit: Gleb Smirnoff CommitDate: 2022-12-07 19:51:48 +0000 udp: inline udp_output() into udp_send() --- sys/netinet/udp_usrreq.c | 59 ++++++++++++++++++++---------------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 44f7b949c140..011e20692935 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -164,8 +164,6 @@ VNET_PCPUSTAT_SYSUNINIT(udpstat); #endif /* VIMAGE */ #ifdef INET static void udp_detach(struct socket *so); -static int udp_output(struct inpcb *, struct mbuf *, struct sockaddr *, - struct mbuf *, struct thread *, int); #endif INPCBSTORAGE_DEFINE(udpcbstor, udpcb, "udpinp", "udp_inpcb", "udp", "udphash"); @@ -1037,21 +1035,22 @@ udp_v4mapped_pktinfo(struct cmsghdr *cm, struct sockaddr_in * src, return (0); } -#endif +#endif /* INET6 */ -static int -udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, - struct mbuf *control, struct thread *td, int flags) +pr_send_t udp_send; /* shared with udp6_usrreq.c */ +int +udp_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, + struct mbuf *control, struct thread *td) { + struct inpcb *inp; struct udpiphdr *ui; - int len = m->m_pkthdr.len; + int len, error = 0; struct in_addr faddr, laddr; struct cmsghdr *cm; struct inpcbinfo *pcbinfo; struct sockaddr_in *sin, src; struct epoch_tracker et; int cscov_partial = 0; - int error = 0; int ipflags = 0; u_short fport, lport; u_char tos; @@ -1060,6 +1059,22 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, uint32_t flowid = 0; uint8_t flowtype = M_HASHTYPE_NONE; + inp = sotoinpcb(so); + KASSERT(inp != NULL, ("udp_send: inp == NULL")); + + if (addr != NULL) { + if (addr->sa_family != AF_INET) + error = EAFNOSUPPORT; + else if (addr->sa_len != sizeof(struct sockaddr_in)) + error = EINVAL; + if (__predict_false(error != 0)) { + m_freem(control); + m_freem(m); + return (error); + } + } + + len = m->m_pkthdr.len; if (len + sizeof(struct udpiphdr) > IP_MAXPACKET) { if (control) m_freem(control); @@ -1071,7 +1086,7 @@ udp_output(struct inpcb *inp, struct mbuf *m, struct sockaddr *addr, sin = (struct sockaddr_in *)addr; /* - * udp_output() may need to temporarily bind or connect the current + * udp_send() may need to temporarily bind or connect the current * inpcb. As such, we don't know up front whether we will need the * pcbinfo lock or not. Do any work to decide what is needed up * front before acquiring any locks. @@ -1640,32 +1655,6 @@ udp_disconnect(struct socket *so) INP_WUNLOCK(inp); return (0); } - -pr_send_t udp_send; /* shared with udp6_usrreq.c */ -int -udp_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr, - struct mbuf *control, struct thread *td) -{ - struct inpcb *inp; - int error; - - inp = sotoinpcb(so); - KASSERT(inp != NULL, ("udp_send: inp == NULL")); - - if (addr != NULL) { - error = 0; - if (addr->sa_family != AF_INET) - error = EAFNOSUPPORT; - else if (addr->sa_len != sizeof(struct sockaddr_in)) - error = EINVAL; - if (__predict_false(error != 0)) { - m_freem(control); - m_freem(m); - return (error); - } - } - return (udp_output(inp, m, addr, control, td, flags)); -} #endif /* INET */ int