From nobody Sun Dec 31 16:24:22 2023 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 4T34FM0hVDz563yb; Sun, 31 Dec 2023 16:24:23 +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 4T34FM0DFhz4YjR; Sun, 31 Dec 2023 16:24:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1704039863; 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=vHzo5A5xGfkPHH1UBGY/s8KMPWfLes3Lf9a+1jz8amI=; b=weKiFRntInW4vvAbs2O+TSdTS7UQZmzKOn47lOPGVtmcEoirWzo5Xxdv82MR4HFWp2bIIT OPnjABD9lEL9CaA/4n7BVoUgB2dEUQIzusKEKzY9JQ/3Q/hM7/sy1fNO1z1N88gKiRcSEF 8vS/tNayEqgtWbuLaHhVmTA2O6uB8v9m00AAQ4TREbuM+7k/EKk9ZtiNeB3ouyRF6TlePt bcUGEzL7GECU8OOo78kcyMw3jI5G7JJNE79iys0cXsn/PI9DeRSu9lbGJ9sgRmKhrmKiQo D6MPJZ/smJ6wIJS0BFzOzSannCSerFRWchWCZX6ExG0gTxvIRoWY389t8DC24A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1704039863; a=rsa-sha256; cv=none; b=HgGCuSsA1UKFc10SEN4Pizz8k+WnhkznAcnoUSsHws4HIyD6yBWJkWd3TzeIfHRD2ha1o5 gJozvRscw0GgO0mjxnisNx7vYDHRUrEmXzaekfIY8a3lAij4DJDSq310+lwe9nHp/pmhwE ZwquMVFOPNXrQYiNK8UQm66kS893X+MGeY987lXGO27oNjx8mrLSD7KPWGtdRvoxtIje8M 5nR5wTPbLSLboCQHuF1oSZmE6qEX+Thw6u4/JOJH4ixTZ3H0TK1qAcwcfouUHShuRmR/oP 6+k1sxoxb4h3o8DXIOO6yuJDPcIGEm3YmSeS2e4UAKKuagjKvOUOSCduuSwMkA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1704039863; 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=vHzo5A5xGfkPHH1UBGY/s8KMPWfLes3Lf9a+1jz8amI=; b=au64A5GQN9KZ3H3pQMHB17NDbA1kbs0E80yEqaMcWjTgj1jca0NIzij5H9p/hWoIKVTQj0 hDcUZYgKFG3TUpDVp1qw/BIpugFsvNk3Vy+j8LwUzw4e1e6SL7FZlCWr/Ae7f66cSN1ENB sQrVru+nGw5R1kAUt9FIZHq+jWAbDSfvdxbiXVYGA+GWyAR2vi/FVhUuKQn0UdwzV4/FO1 0JK36eZfw3pAqpy82KDV4LEYUt0ZaZMn5Nt9bEeS8tyXgVKbcYNiRNDjY2abkIQKH9XgMh W2RphY54WVTn+FRcHEHvNlEFbYmGI64KdiVVLfSP1/EuE8dflo/zY2O2/FmSaA== 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 4T34FL66Bnzh4s; Sun, 31 Dec 2023 16:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 3BVGOMJ3042625; Sun, 31 Dec 2023 16:24:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 3BVGOMvA042622; Sun, 31 Dec 2023 16:24:22 GMT (envelope-from git) Date: Sun, 31 Dec 2023 16:24:22 GMT Message-Id: <202312311624.3BVGOMvA042622@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 0736a38072b5 - main - frag6: Reduce code duplication 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0736a38072b52204289c669770a34d0b801a8a7e Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0736a38072b52204289c669770a34d0b801a8a7e commit 0736a38072b52204289c669770a34d0b801a8a7e Author: Mark Johnston AuthorDate: 2023-12-31 16:15:48 +0000 Commit: Mark Johnston CommitDate: 2023-12-31 16:15:48 +0000 frag6: Reduce code duplication The code which removes a fragment queue from the per-VNET hash table was duplicated three times. Factor it out into a function. No functional change intended. Reviewed by: kp, bz MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D43228 --- sys/netinet6/frag6.c | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/sys/netinet6/frag6.c b/sys/netinet6/frag6.c index a3a6e7eca14a..fbdbc3ef2f28 100644 --- a/sys/netinet6/frag6.c +++ b/sys/netinet6/frag6.c @@ -288,6 +288,20 @@ ip6_deletefraghdr(struct mbuf *m, int offset, int wait __unused) return (0); } +static void +frag6_rmqueue(struct ip6q *q6, uint32_t bucket) +{ + IP6QB_LOCK_ASSERT(bucket); + + TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq); + V_ip6qb[bucket].count--; +#ifdef MAC + mac_ip6q_destroy(q6); +#endif + free(q6, M_FRAG6); + atomic_subtract_int(&V_frag6_nfragpackets, 1); +} + /* * Free a fragment reassembly header and all associated datagrams. */ @@ -324,14 +338,8 @@ frag6_freef(struct ip6q *q6, uint32_t bucket) free(af6, M_FRAG6); } - TAILQ_REMOVE(IP6QB_HEAD(bucket), q6, ip6q_tq); - V_ip6qb[bucket].count--; atomic_subtract_int(&frag6_nfrags, q6->ip6q_nfrag); -#ifdef MAC - mac_ip6q_destroy(q6); -#endif - free(q6, M_FRAG6); - atomic_subtract_int(&V_frag6_nfragpackets, 1); + frag6_rmqueue(q6, bucket); } /* @@ -637,15 +645,8 @@ frag6_input(struct mbuf **mp, int *offp, int proto) if (q6->ip6q_unfrglen >= 0) { /* The 1st fragment has already arrived. */ if (q6->ip6q_unfrglen + fragoff + frgpartlen > IPV6_MAXPACKET) { - if (only_frag) { - TAILQ_REMOVE(head, q6, ip6q_tq); - V_ip6qb[bucket].count--; - atomic_subtract_int(&V_frag6_nfragpackets, 1); -#ifdef MAC - mac_ip6q_destroy(q6); -#endif - free(q6, M_FRAG6); - } + if (only_frag) + frag6_rmqueue(q6, bucket); IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) + @@ -654,15 +655,8 @@ frag6_input(struct mbuf **mp, int *offp, int proto) return (IPPROTO_DONE); } } else if (fragoff + frgpartlen > IPV6_MAXPACKET) { - if (only_frag) { - TAILQ_REMOVE(head, q6, ip6q_tq); - V_ip6qb[bucket].count--; - atomic_subtract_int(&V_frag6_nfragpackets, 1); -#ifdef MAC - mac_ip6q_destroy(q6); -#endif - free(q6, M_FRAG6); - } + if (only_frag) + frag6_rmqueue(q6, bucket); IP6QB_UNLOCK(bucket); icmp6_error(m, ICMP6_PARAM_PROB, ICMP6_PARAMPROB_HEADER, offset - sizeof(struct ip6_frag) +