From nobody Fri Jan 9 14:42:46 2026 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 4dnkyZ6718z62bcD for ; Fri, 09 Jan 2026 14:42:46 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dnkyZ5DpZz3cxH for ; Fri, 09 Jan 2026 14:42:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767969766; 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=k26SW5wUdglausJBRVi6e0rXeJ/44ny4yESJ98LYQsY=; b=ID2HhbeJiMOzyKtZZLvt5xhIPCHd0uO4AXN7QSN+sEfXMqEM5nu66e5wkfNALQG/ecy0bj LyTE+payRHRWuZDcyfTWj437GDfHfc3CbmMRXkEdFkjMq9+7fnvuShaE8o70N+dAhhq8RU FD5OnXGSfd6GJhl1SCydNu33AGRyYPNsAGtb721qsA+S318fqYakjSseiKMzjs5DWxn9ic yq4j2VSh/BZ+kvL+D6YNXcJAXMiihakIl4/Rd0b3FFh0wCEvosHiBsWeK/TmtLy3IQfd29 aloXVZ7aLl9e8tR2lwUKdAB9ybDzO+sIR54Fg7YDUmzxNAKxtWbSIYudoNTqLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767969766; 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=k26SW5wUdglausJBRVi6e0rXeJ/44ny4yESJ98LYQsY=; b=DeNRolvWBHoWBJ02c+DsoaW7VEnEkQcMPaIk97V8n5rwasXjOoZxTHtUHiR26Fib5SQJSX mrAe4Df+k+OLRmNPfGdqQnv/QoJvIK4us47wSyd67OXYJbfThinWkOX9on00g9iqBcepio qJidjgojkCppRDTe1fd82MNMLpb4VP5tLWmoSkw9TZdQ1AVQuy0ONDmp1KISR1HmGW/t12 8uZu8aUNU9iRWiCDzjfecoA+P8blcCq5aTlZbiZLgjB+sVvUcYzY96BoZVOodVXI01B2nH KC8y88W4A5Yq6f2GbCymOMAn902pqATpozF4pTD6olEhSsUjQkU9ltNG0CqSVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1767969766; a=rsa-sha256; cv=none; b=yxNZR8Ni9VUXLnxbZk80valqVQ7J9Q8pDOrog2UuIEXJYqwUmRqNoenroRi9nQSghX0p0U 1ZLt1ZRUYPvO1SWC5HeZXo62gpFhlN5arfE3f6erHG9A8yz/dKWvH/Vcf5V+SZCzYKAwtP C+e6HXxgQJpf1i68mZ/2WGfGSGjXfGojojrYvUTOrf+N3zMTYPhobtzUwkM1Lz0HCvd4Jd S+PJdJnWAMEQ7R93Vhza0ROWppXMAL7GPiGjpxIpcHiPEKFVTb6qyA5r23n3lU5AfsMeqY laCsI1FLVvY0F+5/jmEz+/iDXgWxBRrMpItI++sRARiFyq5VG+SXXsRVrJOu1g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dnkyZ4cqSz1RHT for ; Fri, 09 Jan 2026 14:42:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id f233 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 09 Jan 2026 14:42:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Brooks Davis Subject: git: 31e7dc6b9a00 - main - iflib: remove convoluted custom zeroing code 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: brooks X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 31e7dc6b9a000b02353bfc41cbd897533287cda2 Auto-Submitted: auto-generated Date: Fri, 09 Jan 2026 14:42:46 +0000 Message-Id: <696113e6.f233.5c1a099f@gitrepo.freebsd.org> The branch main has been updated by brooks: URL: https://cgit.FreeBSD.org/src/commit/?id=31e7dc6b9a000b02353bfc41cbd897533287cda2 commit 31e7dc6b9a000b02353bfc41cbd897533287cda2 Author: Brooks Davis AuthorDate: 2026-01-09 14:19:49 +0000 Commit: Brooks Davis CommitDate: 2026-01-09 14:19:49 +0000 iflib: remove convoluted custom zeroing code Replace a collection of aliasing violations and ifdefs with memset (which now expands to __builtin_memset and should be quite reliably inlined.) The old code is hard to maintain as evidenced by the most recent change to if_pkt_info_t updating the defines, but not the zeroing code. Reviewed by: gallatin, erj Effort: CHERI upstreaming Sponsored by: Innovate UK Fixes: 43d7ee540efe ("iflib: support for transmit side nic KTLS offload") Differential Revision: https://reviews.freebsd.org/D54605 --- sys/net/iflib.c | 65 +++++---------------------------------------------------- 1 file changed, 5 insertions(+), 60 deletions(-) diff --git a/sys/net/iflib.c b/sys/net/iflib.c index fcd847ab6f7a..5c37f199e84c 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -504,61 +504,6 @@ typedef struct if_rxsd { iflib_fl_t ifsd_fl; } *if_rxsd_t; -/* multiple of word size */ -#ifdef __LP64__ -#define PKT_INFO_SIZE 7 -#define RXD_INFO_SIZE 5 -#define PKT_TYPE uint64_t -#else -#define PKT_INFO_SIZE 12 -#define RXD_INFO_SIZE 8 -#define PKT_TYPE uint32_t -#endif -#define PKT_LOOP_BOUND ((PKT_INFO_SIZE / 3) * 3) -#define RXD_LOOP_BOUND ((RXD_INFO_SIZE / 4) * 4) - -typedef struct if_pkt_info_pad { - PKT_TYPE pkt_val[PKT_INFO_SIZE]; -} *if_pkt_info_pad_t; -typedef struct if_rxd_info_pad { - PKT_TYPE rxd_val[RXD_INFO_SIZE]; -} *if_rxd_info_pad_t; - -CTASSERT(sizeof(struct if_pkt_info_pad) == sizeof(struct if_pkt_info)); -CTASSERT(sizeof(struct if_rxd_info_pad) == sizeof(struct if_rxd_info)); - -static inline void -pkt_info_zero(if_pkt_info_t pi) -{ - if_pkt_info_pad_t pi_pad; - - pi_pad = (if_pkt_info_pad_t)pi; - pi_pad->pkt_val[0] = 0; pi_pad->pkt_val[1] = 0; pi_pad->pkt_val[2] = 0; - pi_pad->pkt_val[3] = 0; pi_pad->pkt_val[4] = 0; pi_pad->pkt_val[5] = 0; -#ifndef __LP64__ - pi_pad->pkt_val[6] = 0; pi_pad->pkt_val[7] = 0; pi_pad->pkt_val[8] = 0; - pi_pad->pkt_val[9] = 0; pi_pad->pkt_val[10] = 0; -#endif -} - -static inline void -rxd_info_zero(if_rxd_info_t ri) -{ - if_rxd_info_pad_t ri_pad; - int i; - - ri_pad = (if_rxd_info_pad_t)ri; - for (i = 0; i < RXD_LOOP_BOUND; i += 4) { - ri_pad->rxd_val[i] = 0; - ri_pad->rxd_val[i + 1] = 0; - ri_pad->rxd_val[i + 2] = 0; - ri_pad->rxd_val[i + 3] = 0; - } -#ifdef __LP64__ - ri_pad->rxd_val[RXD_INFO_SIZE - 1] = 0; -#endif -} - /* * Only allow a single packet to take up most 1/nth of the tx ring */ @@ -1068,7 +1013,7 @@ iflib_netmap_txsync(struct netmap_kring *kring, int flags) if (nm_i != head) { /* we have new packets to send */ uint32_t pkt_len = 0, seg_idx = 0; int nic_i_start = -1, flags = 0; - pkt_info_zero(&pi); + memset(&pi, 0, sizeof(pi)); pi.ipi_segs = txq->ift_segs; pi.ipi_qsidx = kring->ring_id; nic_i = netmap_idx_k2n(kring, nm_i); @@ -1261,7 +1206,7 @@ iflib_netmap_rxsync(struct netmap_kring *kring, int flags) nm_i = netmap_idx_n2k(kring, nic_i); MPASS(nm_i == kring->nr_hwtail); for (n = 0; avail > 0 && nm_i != hwtail_lim; n++, avail--) { - rxd_info_zero(&ri); + memset(&ri, 0, sizeof(ri)); ri.iri_frags = rxq->ifr_frags; ri.iri_qsidx = kring->ring_id; ri.iri_ifp = ctx->ifc_ifp; @@ -2998,7 +2943,7 @@ iflib_rxeof(iflib_rxq_t rxq, qidx_t budget) /* * Reset client set fields to their default values */ - rxd_info_zero(&ri); + memset(&ri, 0, sizeof(ri)); ri.iri_qsidx = rxq->ifr_id; ri.iri_cidx = *cidxp; ri.iri_ifp = ifp; @@ -3580,7 +3525,7 @@ iflib_encap(iflib_txq_t txq, struct mbuf **m_headp) } m_head = *m_headp; - pkt_info_zero(&pi); + memset(&pi, 0, sizeof(pi)); pi.ipi_mflags = (m_head->m_flags & (M_VLANTAG | M_BCAST | M_MCAST)); pi.ipi_pidx = pidx; pi.ipi_qsidx = txq->ift_id; @@ -4256,7 +4201,7 @@ iflib_if_transmit(if_t ifp, struct mbuf *m) if (ctx->isc_txq_select_v2) { struct if_pkt_info pi; uint64_t early_pullups = 0; - pkt_info_zero(&pi); + memset(&pi, 0, sizeof(pi)); err = iflib_parse_header_partial(&pi, &m, &early_pullups); if (__predict_false(err != 0)) {