From nobody Mon Apr 13 00:12:11 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 4fv7Bn1CLdz6ZB5s for ; Mon, 13 Apr 2026 00:12:17 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fv7Bm6s3lz3Vj2 for ; Mon, 13 Apr 2026 00:12:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776039137; 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=+Thc9Mu9Yy0fKenP4afZKKEUwt9bqMu1ceGdY0T/JCQ=; b=tW+D592EBAZANiq4C6xI8bOhPISw+G+3sUwp8MPqth0FZTRHB9b1ayUrmsOMC+rjq2VZip IrizxtNC3Za6y4D9Iy6eKF0UiUpsyG/hOlXK7HaaFL1XedKdoNKu8KIX5SooWQ5B67i4Kp BYA6QCmo0SPVfQQS+5ipnwE4vpT5x10VfUpuyYkfHHfA3TrO3T0iwlgi2PFyQTb/B6EYpA NRbVa00tQvKxa5Qf4pCWCe33U8ZqrKxhlVwEJ7xaew5T1gfYbmbgFqC1JisMp05xU3AUWG qWxIJWyPPVrQTh8EdZDENAqRFZ/GkxKIqYENaYxTK64yRtoWbeEOr6LPchNNUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776039137; a=rsa-sha256; cv=none; b=vrjsPLNcBMKW/MNlcRH/fzGuXOFToWJWpDW+sOCrElKLlIJBMrxYFn3xxEAYdldXqOKx/k ToPBgopjAcneXS2GZSUpe8D/AEmZYyZaRJ1KsYLAmnpyEnRUOSpvqYdhvKvoZOhHXaXQNQ TX8pmW0ZsZSPInLVE3JV9BmxBLVqgk+BMrCAFLGxCz1RPJBwtDZ9LIgIQxD6mhWSAlcX34 v6Rs86odPJNJ4hjRBnQ8/XKe9b/sew6ykds0gWF+riKjgUci6Yr85h/N4MdRwNhMXrEx0j YlxiB7k+vgodkkvxDFnG5obqDOlPkj289yGmDXuqqxTXT4X8+/pMhML3hPYwbg== 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=1776039137; 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=+Thc9Mu9Yy0fKenP4afZKKEUwt9bqMu1ceGdY0T/JCQ=; b=LiadJhoH4QCjxxp6EUxOg2tdgyXEhWRaVPhuEvbFaby8gNJex2WrBKnKjKdAAMWppCg6bj pgjNGdUkTBTMlRm9/3Toa16sRE9rHYqIwwpumBx7gciWox0rvdnzen0O+0qVWvtEz80rpL 6o4xI1K3uJoVAqrrsD6WgwrO+QQ0v8DLAoPGc0cDrIvv/ffiwo183oqcHUtzZWK45YRip4 Ph3N1td5w8Wcyd4VIpdB2lL7Hy+h2/Cx2JS/LrJwThpGvgvVDkyBj3LOs4XX0K8v5Z11gQ eZk7L1mT0d5MjMdYh0cGZWhzjNf5uh6/1ykao8NPulFdCFEOxOSTfCR25cvyOw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fv7Bm6B7Yzgdw for ; Mon, 13 Apr 2026 00:12:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 345c2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 00:12:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Enji Cooper Subject: git: 27ac9d336f71 - stable/14 - crypto/openssl: update from 3.0.16 to 3.0.20 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: ngie X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 27ac9d336f715b4ce91bf447f73d5c3621d099ce Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 00:12:11 +0000 Message-Id: <69dc34db.345c2.36ced66d@gitrepo.freebsd.org> The branch stable/14 has been updated by ngie: URL: https://cgit.FreeBSD.org/src/commit/?id=27ac9d336f715b4ce91bf447f73d5c3621d099ce commit 27ac9d336f715b4ce91bf447f73d5c3621d099ce Author: Enji Cooper AuthorDate: 2026-04-13 00:10:02 +0000 Commit: Enji Cooper CommitDate: 2026-04-13 00:10:02 +0000 crypto/openssl: update from 3.0.16 to 3.0.20 ### Description This particular change contains all functional and security fixes made between 3.0.16 and 3.0.20, with the net-resulting security issues being the ones addressed in 3.0.20 [1] [2]. This is a direct commit to stable/14 as stable/15 and later use OpenSSL 3.5, as of writing, and thus this change could not have been merged through main and stable/15 since the 3.0.17+ was released after :main switched to OpenSSL 3.5. This does not contain any merge commits as any MFV changes are banned unless they go through :main. ### Process used when updating the component 1. Run the subtree merge command in a staging tree. 2. Resolve conflicts. 3. Compare against reference branch. 4. Pull over remaining changes adding new manpages to the build. 5. Take changes from staging tree over to stable/14 . ### Test Plan Tested with sanity checks on 14-STABLE (amd64) and `make tinderbox` on all 14-STABLE supported architectures. 1. https://github.com/openssl/openssl/releases/tag/openssl-3.0.20 2. https://github.com/openssl/openssl/blob/openssl-3.0.20/CHANGES.md --- crypto/openssl/ACKNOWLEDGEMENTS.md | 4 +- crypto/openssl/CHANGES.md | 781 +- crypto/openssl/Configurations/10-main.conf | 3 +- crypto/openssl/Configurations/50-nonstop.conf | 2 + crypto/openssl/Configurations/unix-Makefile.tmpl | 17 +- .../openssl/Configurations/windows-makefile.tmpl | 5 +- crypto/openssl/Configure | 7 +- crypto/openssl/INSTALL.md | 4 +- crypto/openssl/NEWS.md | 460 +- crypto/openssl/NOTES-WINDOWS.md | 5 + crypto/openssl/README-ENGINES.md | 2 +- crypto/openssl/README.md | 9 +- crypto/openssl/VERSION.dat | 4 +- crypto/openssl/apps/CA.pl | 383 + crypto/openssl/apps/CA.pl.in | 260 +- crypto/openssl/apps/asn1parse.c | 72 +- crypto/openssl/apps/ca.c | 742 +- crypto/openssl/apps/ciphers.c | 55 +- crypto/openssl/apps/cmp.c | 1163 +- crypto/openssl/apps/cms.c | 491 +- crypto/openssl/apps/crl.c | 124 +- crypto/openssl/apps/crl2pkcs7.c | 36 +- crypto/openssl/apps/dgst.c | 141 +- crypto/openssl/apps/dhparam.c | 152 +- crypto/openssl/apps/dsa.c | 78 +- crypto/openssl/apps/dsaparam.c | 64 +- crypto/openssl/apps/ec.c | 78 +- crypto/openssl/apps/ecparam.c | 127 +- crypto/openssl/apps/enc.c | 180 +- crypto/openssl/apps/engine.c | 112 +- crypto/openssl/apps/errstr.c | 17 +- crypto/openssl/apps/fipsinstall.c | 192 +- crypto/openssl/apps/gendsa.c | 39 +- crypto/openssl/apps/genpkey.c | 67 +- crypto/openssl/apps/genrsa.c | 57 +- crypto/openssl/apps/include/app_libctx.h | 4 +- crypto/openssl/apps/include/app_params.h | 1 - crypto/openssl/apps/include/apps.h | 262 +- crypto/openssl/apps/include/apps_ui.h | 5 +- crypto/openssl/apps/include/cmp_mock_srv.h | 18 +- crypto/openssl/apps/include/engine_loader.h | 8 +- crypto/openssl/apps/include/fmt.h | 32 +- crypto/openssl/apps/include/function.h | 17 +- crypto/openssl/apps/include/http_server.h | 86 +- crypto/openssl/apps/include/names.h | 2 +- crypto/openssl/apps/include/opt.h | 544 +- crypto/openssl/apps/include/platform.h | 12 +- crypto/openssl/apps/include/s_apps.h | 56 +- crypto/openssl/apps/include/vms_term_sock.h | 12 +- crypto/openssl/apps/info.c | 36 +- crypto/openssl/apps/kdf.c | 45 +- crypto/openssl/apps/lib/app_libctx.c | 3 +- crypto/openssl/apps/lib/app_params.c | 7 +- crypto/openssl/apps/lib/app_provider.c | 5 +- crypto/openssl/apps/lib/app_rand.c | 7 +- crypto/openssl/apps/lib/app_x509.c | 54 +- crypto/openssl/apps/lib/apps.c | 825 +- crypto/openssl/apps/lib/apps_ui.c | 39 +- crypto/openssl/apps/lib/cmp_mock_srv.c | 121 +- crypto/openssl/apps/lib/columns.c | 1 - crypto/openssl/apps/lib/engine.c | 15 +- crypto/openssl/apps/lib/engine_loader.c | 38 +- crypto/openssl/apps/lib/http_server.c | 126 +- crypto/openssl/apps/lib/names.c | 2 +- crypto/openssl/apps/lib/opt.c | 271 +- crypto/openssl/apps/lib/s_cb.c | 625 +- crypto/openssl/apps/lib/s_socket.c | 119 +- crypto/openssl/apps/lib/tlssrp_depr.c | 47 +- crypto/openssl/apps/lib/vms_decc_argv.c | 2 +- crypto/openssl/apps/lib/vms_term_sock.c | 517 +- crypto/openssl/apps/lib/win32_init.c | 31 +- crypto/openssl/apps/list.c | 484 +- crypto/openssl/apps/mac.c | 42 +- crypto/openssl/apps/nseq.c | 22 +- crypto/openssl/apps/ocsp.c | 487 +- crypto/openssl/apps/openssl.c | 58 +- crypto/openssl/apps/passwd.c | 253 +- crypto/openssl/apps/pkcs12.c | 342 +- crypto/openssl/apps/pkcs7.c | 39 +- crypto/openssl/apps/pkcs8.c | 88 +- crypto/openssl/apps/pkey.c | 100 +- crypto/openssl/apps/pkeyparam.c | 32 +- crypto/openssl/apps/pkeyutl.c | 244 +- crypto/openssl/apps/prime.c | 39 +- crypto/openssl/apps/progs.pl | 11 +- crypto/openssl/apps/rand.c | 28 +- crypto/openssl/apps/rehash.c | 169 +- crypto/openssl/apps/req.c | 450 +- crypto/openssl/apps/rsa.c | 103 +- crypto/openssl/apps/rsautl.c | 91 +- crypto/openssl/apps/s_client.c | 1742 +- crypto/openssl/apps/s_server.c | 929 +- crypto/openssl/apps/s_time.c | 164 +- crypto/openssl/apps/sess_id.c | 42 +- crypto/openssl/apps/smime.c | 208 +- crypto/openssl/apps/speed.c | 1256 +- crypto/openssl/apps/spkac.c | 56 +- crypto/openssl/apps/srp.c | 196 +- crypto/openssl/apps/storeutl.c | 181 +- crypto/openssl/apps/testdsa.h | 1490 +- crypto/openssl/apps/testrsa.h | 4912 +++- crypto/openssl/apps/timeouts.h | 8 +- crypto/openssl/apps/ts.c | 269 +- crypto/openssl/apps/verify.c | 137 +- crypto/openssl/apps/version.c | 53 +- crypto/openssl/apps/vms_decc_init.c | 73 +- crypto/openssl/apps/x509.c | 389 +- crypto/openssl/configdata.pm.in | 4 +- crypto/openssl/crypto/LPdir_nyi.c | 2 +- crypto/openssl/crypto/LPdir_unix.c | 23 +- crypto/openssl/crypto/LPdir_vms.c | 24 +- crypto/openssl/crypto/LPdir_win.c | 35 +- crypto/openssl/crypto/LPdir_win32.c | 2 + crypto/openssl/crypto/LPdir_wince.c | 2 + crypto/openssl/crypto/aes/aes_cbc.c | 8 +- crypto/openssl/crypto/aes/aes_cfb.c | 18 +- crypto/openssl/crypto/aes/aes_core.c | 3589 ++- crypto/openssl/crypto/aes/aes_ecb.c | 2 +- crypto/openssl/crypto/aes/aes_ige.c | 56 +- crypto/openssl/crypto/aes/aes_local.h | 51 +- crypto/openssl/crypto/aes/aes_misc.c | 6 +- crypto/openssl/crypto/aes/aes_ofb.c | 6 +- crypto/openssl/crypto/aes/aes_wrap.c | 12 +- crypto/openssl/crypto/aes/aes_x86core.c | 594 +- crypto/openssl/crypto/aes/asm/aes-s390x.pl | 5 +- crypto/openssl/crypto/aes/asm/aesv8-armx.pl | 8 +- crypto/openssl/crypto/aria/aria.c | 337 +- crypto/openssl/crypto/arm_arch.h | 165 +- crypto/openssl/crypto/armcap.c | 154 +- crypto/openssl/crypto/asn1/a_bitstr.c | 12 +- crypto/openssl/crypto/asn1/a_d2i_fp.c | 40 +- crypto/openssl/crypto/asn1/a_digest.c | 9 +- crypto/openssl/crypto/asn1/a_dup.c | 6 +- crypto/openssl/crypto/asn1/a_gentm.c | 8 +- crypto/openssl/crypto/asn1/a_i2d_fp.c | 4 +- crypto/openssl/crypto/asn1/a_int.c | 33 +- crypto/openssl/crypto/asn1/a_mbstr.c | 58 +- crypto/openssl/crypto/asn1/a_object.c | 32 +- crypto/openssl/crypto/asn1/a_octet.c | 4 +- crypto/openssl/crypto/asn1/a_print.c | 3 +- crypto/openssl/crypto/asn1/a_sign.c | 43 +- crypto/openssl/crypto/asn1/a_strex.c | 91 +- crypto/openssl/crypto/asn1/a_strnid.c | 16 +- crypto/openssl/crypto/asn1/a_time.c | 53 +- crypto/openssl/crypto/asn1/a_type.c | 12 +- crypto/openssl/crypto/asn1/a_utctm.c | 2 +- crypto/openssl/crypto/asn1/a_utf8.c | 4 +- crypto/openssl/crypto/asn1/a_verify.c | 27 +- crypto/openssl/crypto/asn1/ameth_lib.c | 172 +- crypto/openssl/crypto/asn1/asn1_err.c | 366 +- crypto/openssl/crypto/asn1/asn1_gen.c | 103 +- crypto/openssl/crypto/asn1/asn1_item_list.h | 4 +- crypto/openssl/crypto/asn1/asn1_lib.c | 12 +- crypto/openssl/crypto/asn1/asn1_local.h | 28 +- crypto/openssl/crypto/asn1/asn1_parse.c | 74 +- crypto/openssl/crypto/asn1/asn_mime.c | 123 +- crypto/openssl/crypto/asn1/asn_mstbl.c | 12 +- crypto/openssl/crypto/asn1/asn_pack.c | 4 +- crypto/openssl/crypto/asn1/bio_asn1.c | 44 +- crypto/openssl/crypto/asn1/bio_ndef.c | 17 +- crypto/openssl/crypto/asn1/d2i_param.c | 2 +- crypto/openssl/crypto/asn1/d2i_pr.c | 41 +- crypto/openssl/crypto/asn1/d2i_pu.c | 4 +- crypto/openssl/crypto/asn1/evp_asn1.c | 26 +- crypto/openssl/crypto/asn1/f_int.c | 7 +- crypto/openssl/crypto/asn1/f_string.c | 4 +- crypto/openssl/crypto/asn1/i2d_evp.c | 34 +- crypto/openssl/crypto/asn1/n_pkey.c | 23 +- crypto/openssl/crypto/asn1/nsseq.c | 6 +- crypto/openssl/crypto/asn1/p5_pbe.c | 19 +- crypto/openssl/crypto/asn1/p5_pbev2.c | 55 +- crypto/openssl/crypto/asn1/p5_scrypt.c | 67 +- crypto/openssl/crypto/asn1/p8_pkey.c | 22 +- crypto/openssl/crypto/asn1/standard_methods.h | 1 - crypto/openssl/crypto/asn1/t_bitst.c | 4 +- crypto/openssl/crypto/asn1/t_pkey.c | 19 +- crypto/openssl/crypto/asn1/t_spki.c | 6 +- crypto/openssl/crypto/asn1/tasn_dec.c | 227 +- crypto/openssl/crypto/asn1/tasn_enc.c | 56 +- crypto/openssl/crypto/asn1/tasn_new.c | 30 +- crypto/openssl/crypto/asn1/tasn_prn.c | 92 +- crypto/openssl/crypto/asn1/tasn_scn.c | 2 +- crypto/openssl/crypto/asn1/tasn_typ.c | 26 +- crypto/openssl/crypto/asn1/tasn_utl.c | 22 +- crypto/openssl/crypto/asn1/tbl_standard.h | 85 +- crypto/openssl/crypto/asn1/x_algor.c | 21 +- crypto/openssl/crypto/asn1/x_bignum.c | 29 +- crypto/openssl/crypto/asn1/x_int64.c | 87 +- crypto/openssl/crypto/asn1/x_long.c | 25 +- crypto/openssl/crypto/asn1/x_sig.c | 8 +- crypto/openssl/crypto/asn1/x_spki.c | 10 +- crypto/openssl/crypto/asn1/x_val.c | 4 +- crypto/openssl/crypto/asn1_dsa.c | 61 +- crypto/openssl/crypto/async/arch/async_null.c | 1 - crypto/openssl/crypto/async/arch/async_null.h | 13 +- crypto/openssl/crypto/async/arch/async_posix.c | 6 +- crypto/openssl/crypto/async/arch/async_posix.h | 51 +- crypto/openssl/crypto/async/arch/async_win.c | 10 +- crypto/openssl/crypto/async/arch/async_win.h | 30 +- crypto/openssl/crypto/async/async.c | 29 +- crypto/openssl/crypto/async/async_err.c | 16 +- crypto/openssl/crypto/async/async_local.h | 9 +- crypto/openssl/crypto/async/async_wait.c | 48 +- crypto/openssl/crypto/bf/bf_cfb64.c | 8 +- crypto/openssl/crypto/bf/bf_ecb.c | 2 +- crypto/openssl/crypto/bf/bf_enc.c | 12 +- crypto/openssl/crypto/bf/bf_local.h | 134 +- crypto/openssl/crypto/bf/bf_ofb64.c | 8 +- crypto/openssl/crypto/bf/bf_pi.h | 1548 +- crypto/openssl/crypto/bio/bf_buff.c | 23 +- crypto/openssl/crypto/bio/bf_lbuf.c | 20 +- crypto/openssl/crypto/bio/bf_prefix.c | 14 +- crypto/openssl/crypto/bio/bf_readbuff.c | 64 +- crypto/openssl/crypto/bio/bio_addr.c | 162 +- crypto/openssl/crypto/bio/bio_cb.c | 22 +- crypto/openssl/crypto/bio/bio_dump.c | 26 +- crypto/openssl/crypto/bio/bio_err.c | 114 +- crypto/openssl/crypto/bio/bio_lib.c | 46 +- crypto/openssl/crypto/bio/bio_local.h | 153 +- crypto/openssl/crypto/bio/bio_meth.c | 46 +- crypto/openssl/crypto/bio/bio_print.c | 173 +- crypto/openssl/crypto/bio/bio_sock.c | 213 +- crypto/openssl/crypto/bio/bio_sock2.c | 87 +- crypto/openssl/crypto/bio/bss_acpt.c | 140 +- crypto/openssl/crypto/bio/bss_bio.c | 68 +- crypto/openssl/crypto/bio/bss_conn.c | 192 +- crypto/openssl/crypto/bio/bss_core.c | 8 +- crypto/openssl/crypto/bio/bss_dgram.c | 833 +- crypto/openssl/crypto/bio/bss_fd.c | 46 +- crypto/openssl/crypto/bio/bss_file.c | 88 +- crypto/openssl/crypto/bio/bss_log.c | 206 +- crypto/openssl/crypto/bio/bss_mem.c | 14 +- crypto/openssl/crypto/bio/bss_null.c | 2 +- crypto/openssl/crypto/bio/bss_sock.c | 101 +- crypto/openssl/crypto/bio/ossl_core_bio.c | 4 +- crypto/openssl/crypto/bn/asm/armv4-gf2m.pl | 4 +- crypto/openssl/crypto/bn/asm/rsaz-avx512.pl | 4 +- crypto/openssl/crypto/bn/asm/sparcv9-mont.pl | 4 +- crypto/openssl/crypto/bn/asm/x86_64-gcc.c | 306 +- crypto/openssl/crypto/bn/bn_add.c | 3 +- crypto/openssl/crypto/bn/bn_asm.c | 457 +- crypto/openssl/crypto/bn/bn_blind.c | 35 +- crypto/openssl/crypto/bn/bn_const.c | 253 +- crypto/openssl/crypto/bn/bn_conv.c | 14 +- crypto/openssl/crypto/bn/bn_ctx.c | 37 +- crypto/openssl/crypto/bn/bn_depr.c | 16 +- crypto/openssl/crypto/bn/bn_dh.c | 1135 +- crypto/openssl/crypto/bn/bn_div.c | 160 +- crypto/openssl/crypto/bn/bn_err.c | 54 +- crypto/openssl/crypto/bn/bn_exp.c | 344 +- crypto/openssl/crypto/bn/bn_exp2.c | 29 +- crypto/openssl/crypto/bn/bn_gcd.c | 35 +- crypto/openssl/crypto/bn/bn_gf2m.c | 158 +- crypto/openssl/crypto/bn/bn_intern.c | 14 +- crypto/openssl/crypto/bn/bn_kron.c | 6 +- crypto/openssl/crypto/bn/bn_lib.c | 74 +- crypto/openssl/crypto/bn/bn_local.h | 820 +- crypto/openssl/crypto/bn/bn_mod.c | 20 +- crypto/openssl/crypto/bn/bn_mont.c | 69 +- crypto/openssl/crypto/bn/bn_mpi.c | 3 +- crypto/openssl/crypto/bn/bn_mul.c | 69 +- crypto/openssl/crypto/bn/bn_nist.c | 432 +- crypto/openssl/crypto/bn/bn_ppc.c | 8 +- crypto/openssl/crypto/bn/bn_prime.c | 70 +- crypto/openssl/crypto/bn/bn_print.c | 6 +- crypto/openssl/crypto/bn/bn_rand.c | 78 +- crypto/openssl/crypto/bn/bn_recp.c | 12 +- crypto/openssl/crypto/bn/bn_rsa_fips186_4.c | 45 +- crypto/openssl/crypto/bn/bn_shift.c | 8 +- crypto/openssl/crypto/bn/bn_sparc.c | 65 +- crypto/openssl/crypto/bn/bn_sqr.c | 16 +- crypto/openssl/crypto/bn/bn_sqrt.c | 13 +- crypto/openssl/crypto/bn/bn_srp.c | 26 +- crypto/openssl/crypto/bn/bn_word.c | 3 +- crypto/openssl/crypto/bn/bn_x931p.c | 25 +- crypto/openssl/crypto/bn/rsaz_exp.c | 40 +- crypto/openssl/crypto/bn/rsaz_exp.h | 67 +- crypto/openssl/crypto/bn/rsaz_exp_x2.c | 182 +- crypto/openssl/crypto/bsearch.c | 12 +- crypto/openssl/crypto/buffer/buf_err.c | 2 +- crypto/openssl/crypto/camellia/camellia.c | 426 +- crypto/openssl/crypto/camellia/cmll_cbc.c | 8 +- crypto/openssl/crypto/camellia/cmll_cfb.c | 18 +- crypto/openssl/crypto/camellia/cmll_ctr.c | 10 +- crypto/openssl/crypto/camellia/cmll_ecb.c | 2 +- crypto/openssl/crypto/camellia/cmll_local.h | 18 +- crypto/openssl/crypto/camellia/cmll_misc.c | 6 +- crypto/openssl/crypto/camellia/cmll_ofb.c | 6 +- crypto/openssl/crypto/cast/c_cfb64.c | 8 +- crypto/openssl/crypto/cast/c_ecb.c | 2 +- crypto/openssl/crypto/cast/c_enc.c | 4 +- crypto/openssl/crypto/cast/c_ofb64.c | 8 +- crypto/openssl/crypto/cast/c_skey.c | 15 +- crypto/openssl/crypto/cast/cast_local.h | 321 +- crypto/openssl/crypto/cast/cast_s.h | 2560 +- crypto/openssl/crypto/chacha/chacha_enc.c | 45 +- crypto/openssl/crypto/chacha/chacha_ppc.c | 24 +- crypto/openssl/crypto/cmac/cmac.c | 3 +- crypto/openssl/crypto/cmp/cmp_asn.c | 189 +- crypto/openssl/crypto/cmp/cmp_client.c | 207 +- crypto/openssl/crypto/cmp/cmp_ctx.c | 208 +- crypto/openssl/crypto/cmp/cmp_err.c | 302 +- crypto/openssl/crypto/cmp/cmp_hdr.c | 50 +- crypto/openssl/crypto/cmp/cmp_http.c | 36 +- crypto/openssl/crypto/cmp/cmp_local.h | 212 +- crypto/openssl/crypto/cmp/cmp_msg.c | 275 +- crypto/openssl/crypto/cmp/cmp_protect.c | 48 +- crypto/openssl/crypto/cmp/cmp_server.c | 128 +- crypto/openssl/crypto/cmp/cmp_status.c | 59 +- crypto/openssl/crypto/cmp/cmp_util.c | 76 +- crypto/openssl/crypto/cmp/cmp_vfy.c | 200 +- crypto/openssl/crypto/cms/cms_asn1.c | 301 +- crypto/openssl/crypto/cms/cms_att.c | 88 +- crypto/openssl/crypto/cms/cms_cd.c | 8 +- crypto/openssl/crypto/cms/cms_dd.c | 13 +- crypto/openssl/crypto/cms/cms_dh.c | 43 +- crypto/openssl/crypto/cms/cms_ec.c | 42 +- crypto/openssl/crypto/cms/cms_enc.c | 32 +- crypto/openssl/crypto/cms/cms_env.c | 192 +- crypto/openssl/crypto/cms/cms_err.c | 304 +- crypto/openssl/crypto/cms/cms_ess.c | 59 +- crypto/openssl/crypto/cms/cms_io.c | 30 +- crypto/openssl/crypto/cms/cms_kari.c | 110 +- crypto/openssl/crypto/cms/cms_lib.c | 41 +- crypto/openssl/crypto/cms/cms_local.h | 86 +- crypto/openssl/crypto/cms/cms_pwri.c | 66 +- crypto/openssl/crypto/cms/cms_rsa.c | 43 +- crypto/openssl/crypto/cms/cms_sd.c | 152 +- crypto/openssl/crypto/cms/cms_smime.c | 143 +- crypto/openssl/crypto/comp/c_zlib.c | 174 +- crypto/openssl/crypto/comp/comp_err.c | 22 +- crypto/openssl/crypto/comp/comp_lib.c | 6 +- crypto/openssl/crypto/comp/comp_local.h | 22 +- crypto/openssl/crypto/conf/conf_api.c | 6 +- crypto/openssl/crypto/conf/conf_def.c | 78 +- crypto/openssl/crypto/conf/conf_err.c | 90 +- crypto/openssl/crypto/conf/conf_lib.c | 27 +- crypto/openssl/crypto/conf/conf_mod.c | 67 +- crypto/openssl/crypto/conf/conf_sap.c | 6 +- crypto/openssl/crypto/conf/conf_ssl.c | 13 +- crypto/openssl/crypto/context.c | 38 +- crypto/openssl/crypto/core_algorithm.c | 52 +- crypto/openssl/crypto/core_fetch.c | 34 +- crypto/openssl/crypto/core_namemap.c | 75 +- crypto/openssl/crypto/cpt_err.c | 82 +- crypto/openssl/crypto/cpuid.c | 41 +- crypto/openssl/crypto/crmf/crmf_asn.c | 81 +- crypto/openssl/crypto/crmf/crmf_err.c | 88 +- crypto/openssl/crypto/crmf/crmf_lib.c | 236 +- crypto/openssl/crypto/crmf/crmf_local.h | 25 +- crypto/openssl/crypto/crmf/crmf_pbm.c | 29 +- crypto/openssl/crypto/cryptlib.c | 112 +- crypto/openssl/crypto/ct/ct_b64.c | 16 +- crypto/openssl/crypto/ct/ct_err.c | 62 +- crypto/openssl/crypto/ct/ct_local.h | 97 +- crypto/openssl/crypto/ct/ct_log.c | 27 +- crypto/openssl/crypto/ct/ct_oct.c | 22 +- crypto/openssl/crypto/ct/ct_policy.c | 13 +- crypto/openssl/crypto/ct/ct_prn.c | 16 +- crypto/openssl/crypto/ct/ct_sct.c | 11 +- crypto/openssl/crypto/ct/ct_sct_ctx.c | 13 +- crypto/openssl/crypto/ct/ct_vfy.c | 9 +- crypto/openssl/crypto/ct/ct_x509v3.c | 62 +- crypto/openssl/crypto/ctype.c | 414 +- crypto/openssl/crypto/der_writer.c | 23 +- crypto/openssl/crypto/des/cbc_cksm.c | 4 +- crypto/openssl/crypto/des/cbc_enc.c | 2 + crypto/openssl/crypto/des/cfb64ede.c | 16 +- crypto/openssl/crypto/des/cfb64enc.c | 8 +- crypto/openssl/crypto/des/cfb_enc.c | 13 +- crypto/openssl/crypto/des/des_enc.c | 144 +- crypto/openssl/crypto/des/des_local.h | 381 +- crypto/openssl/crypto/des/ecb3_enc.c | 4 +- crypto/openssl/crypto/des/ecb_enc.c | 3 +- crypto/openssl/crypto/des/fcrypt.c | 154 +- crypto/openssl/crypto/des/fcrypt_b.c | 52 +- crypto/openssl/crypto/des/ncbc_enc.c | 6 +- crypto/openssl/crypto/des/ofb64ede.c | 10 +- crypto/openssl/crypto/des/ofb64enc.c | 8 +- crypto/openssl/crypto/des/ofb_enc.c | 8 +- crypto/openssl/crypto/des/pcbc_enc.c | 4 +- crypto/openssl/crypto/des/qud_cksm.c | 22 +- crypto/openssl/crypto/des/set_key.c | 725 +- crypto/openssl/crypto/des/spr.h | 640 +- crypto/openssl/crypto/des/xcbc_enc.c | 6 +- crypto/openssl/crypto/dh/dh_ameth.c | 48 +- crypto/openssl/crypto/dh/dh_asn1.c | 38 +- crypto/openssl/crypto/dh/dh_backend.c | 21 +- crypto/openssl/crypto/dh/dh_check.c | 8 +- crypto/openssl/crypto/dh/dh_depr.c | 2 +- crypto/openssl/crypto/dh/dh_err.c | 92 +- crypto/openssl/crypto/dh/dh_gen.c | 18 +- crypto/openssl/crypto/dh/dh_group_params.c | 5 +- crypto/openssl/crypto/dh/dh_kdf.c | 26 +- crypto/openssl/crypto/dh/dh_key.c | 59 +- crypto/openssl/crypto/dh/dh_lib.c | 16 +- crypto/openssl/crypto/dh/dh_local.h | 24 +- crypto/openssl/crypto/dh/dh_meth.c | 28 +- crypto/openssl/crypto/dh/dh_pmeth.c | 53 +- crypto/openssl/crypto/dh/dh_rfc5114.c | 34 +- crypto/openssl/crypto/dllmain.c | 7 +- crypto/openssl/crypto/dsa/dsa_ameth.c | 157 +- crypto/openssl/crypto/dsa/dsa_asn1.c | 30 +- crypto/openssl/crypto/dsa/dsa_backend.c | 24 +- crypto/openssl/crypto/dsa/dsa_check.c | 8 +- crypto/openssl/crypto/dsa/dsa_depr.c | 10 +- crypto/openssl/crypto/dsa/dsa_err.c | 50 +- crypto/openssl/crypto/dsa/dsa_gen.c | 24 +- crypto/openssl/crypto/dsa/dsa_key.c | 18 +- crypto/openssl/crypto/dsa/dsa_lib.c | 19 +- crypto/openssl/crypto/dsa/dsa_local.h | 38 +- crypto/openssl/crypto/dsa/dsa_meth.c | 52 +- crypto/openssl/crypto/dsa/dsa_ossl.c | 70 +- crypto/openssl/crypto/dsa/dsa_pmeth.c | 39 +- crypto/openssl/crypto/dsa/dsa_sign.c | 14 +- crypto/openssl/crypto/dsa/dsa_vrf.c | 2 +- crypto/openssl/crypto/dso/dso_dl.c | 59 +- crypto/openssl/crypto/dso/dso_dlfcn.c | 132 +- crypto/openssl/crypto/dso/dso_err.c | 56 +- crypto/openssl/crypto/dso/dso_lib.c | 8 +- crypto/openssl/crypto/dso/dso_local.h | 16 +- crypto/openssl/crypto/dso/dso_vms.c | 162 +- crypto/openssl/crypto/dso/dso_win32.c | 160 +- crypto/openssl/crypto/ebcdic.c | 110 +- crypto/openssl/crypto/ec/curve25519.c | 5131 ++-- .../crypto/ec/curve448/arch_32/arch_intrinsics.h | 8 +- crypto/openssl/crypto/ec/curve448/arch_32/f_impl.h | 18 +- .../openssl/crypto/ec/curve448/arch_32/f_impl32.c | 10 +- .../crypto/ec/curve448/arch_64/arch_intrinsics.h | 12 +- crypto/openssl/crypto/ec/curve448/arch_64/f_impl.h | 15 +- .../openssl/crypto/ec/curve448/arch_64/f_impl64.c | 8 +- crypto/openssl/crypto/ec/curve448/curve448.c | 222 +- crypto/openssl/crypto/ec/curve448/curve448_local.h | 22 +- .../openssl/crypto/ec/curve448/curve448_tables.c | 3028 +-- crypto/openssl/crypto/ec/curve448/curve448utils.h | 44 +- crypto/openssl/crypto/ec/curve448/ed448.h | 102 +- crypto/openssl/crypto/ec/curve448/eddsa.c | 232 +- crypto/openssl/crypto/ec/curve448/f_generic.c | 25 +- crypto/openssl/crypto/ec/curve448/field.h | 87 +- crypto/openssl/crypto/ec/curve448/point_448.h | 101 +- crypto/openssl/crypto/ec/curve448/scalar.c | 82 +- crypto/openssl/crypto/ec/curve448/word.h | 48 +- crypto/openssl/crypto/ec/ec2_oct.c | 34 +- crypto/openssl/crypto/ec/ec2_smpl.c | 122 +- crypto/openssl/crypto/ec/ec_ameth.c | 89 +- crypto/openssl/crypto/ec/ec_asn1.c | 150 +- crypto/openssl/crypto/ec/ec_backend.c | 93 +- crypto/openssl/crypto/ec/ec_check.c | 14 +- crypto/openssl/crypto/ec/ec_curve.c | 1560 +- crypto/openssl/crypto/ec/ec_cvt.c | 4 +- crypto/openssl/crypto/ec/ec_deprecated.c | 8 +- crypto/openssl/crypto/ec/ec_err.c | 212 +- crypto/openssl/crypto/ec/ec_key.c | 44 +- crypto/openssl/crypto/ec/ec_kmeth.c | 147 +- crypto/openssl/crypto/ec/ec_lib.c | 188 +- crypto/openssl/crypto/ec/ec_local.h | 496 +- crypto/openssl/crypto/ec/ec_mult.c | 113 +- crypto/openssl/crypto/ec/ec_oct.c | 34 +- crypto/openssl/crypto/ec/ec_pmeth.c | 29 +- crypto/openssl/crypto/ec/ec_print.c | 6 +- crypto/openssl/crypto/ec/ecdh_kdf.c | 22 +- crypto/openssl/crypto/ec/ecdh_ossl.c | 9 +- crypto/openssl/crypto/ec/ecdsa_ossl.c | 51 +- crypto/openssl/crypto/ec/ecdsa_sign.c | 13 +- crypto/openssl/crypto/ec/ecdsa_vrf.c | 6 +- crypto/openssl/crypto/ec/eck_prn.c | 23 +- crypto/openssl/crypto/ec/ecp_mont.c | 32 +- crypto/openssl/crypto/ec/ecp_nist.c | 28 +- crypto/openssl/crypto/ec/ecp_nistp224.c | 602 +- crypto/openssl/crypto/ec/ecp_nistp256.c | 789 +- crypto/openssl/crypto/ec/ecp_nistp521.c | 940 +- crypto/openssl/crypto/ec/ecp_nistputil.c | 62 +- crypto/openssl/crypto/ec/ecp_nistz256.c | 363 +- crypto/openssl/crypto/ec/ecp_nistz256_table.c | 24407 +++++++++++-------- crypto/openssl/crypto/ec/ecp_oct.c | 31 +- crypto/openssl/crypto/ec/ecp_ppc.c | 8 +- crypto/openssl/crypto/ec/ecp_s390x_nistp.c | 323 +- crypto/openssl/crypto/ec/ecp_smpl.c | 169 +- crypto/openssl/crypto/ec/ecx_backend.c | 32 +- crypto/openssl/crypto/ec/ecx_backend.h | 18 +- crypto/openssl/crypto/ec/ecx_key.c | 2 +- crypto/openssl/crypto/ec/ecx_meth.c | 229 +- crypto/openssl/crypto/ec/ecx_s390x.c | 28 +- crypto/openssl/crypto/encode_decode/decoder_err.c | 14 +- crypto/openssl/crypto/encode_decode/decoder_lib.c | 363 +- crypto/openssl/crypto/encode_decode/decoder_meth.c | 90 +- crypto/openssl/crypto/encode_decode/decoder_pkey.c | 173 +- crypto/openssl/crypto/encode_decode/encoder_err.c | 14 +- crypto/openssl/crypto/encode_decode/encoder_lib.c | 218 +- .../openssl/crypto/encode_decode/encoder_local.h | 12 +- crypto/openssl/crypto/encode_decode/encoder_meth.c | 100 +- crypto/openssl/crypto/encode_decode/encoder_pkey.c | 98 +- crypto/openssl/crypto/engine/eng_all.c | 4 +- crypto/openssl/crypto/engine/eng_cnf.c | 13 +- crypto/openssl/crypto/engine/eng_ctrl.c | 28 +- crypto/openssl/crypto/engine/eng_dyn.c | 116 +- crypto/openssl/crypto/engine/eng_err.c | 128 +- crypto/openssl/crypto/engine/eng_fat.c | 2 +- crypto/openssl/crypto/engine/eng_lib.c | 4 +- crypto/openssl/crypto/engine/eng_list.c | 13 +- crypto/openssl/crypto/engine/eng_local.h | 48 +- crypto/openssl/crypto/engine/eng_openssl.c | 126 +- crypto/openssl/crypto/engine/eng_pkey.c | 20 +- crypto/openssl/crypto/engine/eng_rdrand.c | 30 +- crypto/openssl/crypto/engine/eng_table.c | 46 +- crypto/openssl/crypto/engine/tb_asnmth.c | 22 +- crypto/openssl/crypto/engine/tb_cipher.c | 10 +- crypto/openssl/crypto/engine/tb_dh.c | 10 +- crypto/openssl/crypto/engine/tb_digest.c | 10 +- crypto/openssl/crypto/engine/tb_dsa.c | 10 +- crypto/openssl/crypto/engine/tb_eckey.c | 10 +- crypto/openssl/crypto/engine/tb_pkmeth.c | 10 +- crypto/openssl/crypto/engine/tb_rand.c | 10 +- crypto/openssl/crypto/engine/tb_rsa.c | 10 +- crypto/openssl/crypto/err/err.c | 238 +- crypto/openssl/crypto/err/err_all.c | 48 +- crypto/openssl/crypto/err/err_all_legacy.c | 112 +- crypto/openssl/crypto/err/err_local.h | 15 +- crypto/openssl/crypto/err/err_prn.c | 12 +- crypto/openssl/crypto/ess/ess_asn1.c | 24 +- crypto/openssl/crypto/ess/ess_err.c | 38 +- crypto/openssl/crypto/ess/ess_lib.c | 51 +- crypto/openssl/crypto/evp/asymcipher.c | 93 +- crypto/openssl/crypto/evp/bio_b64.c | 69 +- crypto/openssl/crypto/evp/bio_enc.c | 56 +- crypto/openssl/crypto/evp/bio_md.c | 8 +- crypto/openssl/crypto/evp/bio_ok.c | 72 +- crypto/openssl/crypto/evp/c_allc.c | 8 +- crypto/openssl/crypto/evp/cmeth_lib.c | 57 +- crypto/openssl/crypto/evp/ctrl_params_translate.c | 1357 +- crypto/openssl/crypto/evp/dh_ctrl.c | 46 +- crypto/openssl/crypto/evp/dh_support.c | 15 +- crypto/openssl/crypto/evp/digest.c | 161 +- crypto/openssl/crypto/evp/dsa_ctrl.c | 18 +- crypto/openssl/crypto/evp/e_aes.c | 1624 +- crypto/openssl/crypto/evp/e_aes_cbc_hmac_sha1.c | 447 +- crypto/openssl/crypto/evp/e_aes_cbc_hmac_sha256.c | 440 +- crypto/openssl/crypto/evp/e_aria.c | 358 +- crypto/openssl/crypto/evp/e_bf.c | 20 +- crypto/openssl/crypto/evp/e_camellia.c | 240 +- crypto/openssl/crypto/evp/e_cast.c | 22 +- crypto/openssl/crypto/evp/e_chacha20_poly1305.c | 268 +- crypto/openssl/crypto/evp/e_des.c | 128 +- crypto/openssl/crypto/evp/e_des3.c | 192 +- crypto/openssl/crypto/evp/e_idea.c | 34 +- crypto/openssl/crypto/evp/e_null.c | 8 +- crypto/openssl/crypto/evp/e_old.c | 16 +- crypto/openssl/crypto/evp/e_rc2.c | 53 +- crypto/openssl/crypto/evp/e_rc4.c | 22 +- crypto/openssl/crypto/evp/e_rc4_hmac_md5.c | 161 +- crypto/openssl/crypto/evp/e_rc5.c | 26 +- crypto/openssl/crypto/evp/e_seed.c | 10 +- crypto/openssl/crypto/evp/e_sm4.c | 44 +- crypto/openssl/crypto/evp/e_xcbc_d.c | 34 +- crypto/openssl/crypto/evp/ec_ctrl.c | 39 +- crypto/openssl/crypto/evp/ec_support.c | 194 +- crypto/openssl/crypto/evp/encode.c | 342 +- crypto/openssl/crypto/evp/evp_cnf.c | 7 +- crypto/openssl/crypto/evp/evp_enc.c | 265 +- crypto/openssl/crypto/evp/evp_err.c | 358 +- crypto/openssl/crypto/evp/evp_fetch.c | 175 +- crypto/openssl/crypto/evp/evp_key.c | 22 +- crypto/openssl/crypto/evp/evp_lib.c | 174 +- crypto/openssl/crypto/evp/evp_local.h | 183 +- crypto/openssl/crypto/evp/evp_pbe.c | 124 +- crypto/openssl/crypto/evp/evp_pkey.c | 40 +- crypto/openssl/crypto/evp/evp_rand.c | 115 +- crypto/openssl/crypto/evp/evp_utils.c | 70 +- crypto/openssl/crypto/evp/exchange.c | 115 +- crypto/openssl/crypto/evp/kdf_lib.c | 10 +- crypto/openssl/crypto/evp/kdf_meth.c | 27 +- crypto/openssl/crypto/evp/kem.c | 67 +- crypto/openssl/crypto/evp/keymgmt_lib.c | 72 +- crypto/openssl/crypto/evp/keymgmt_meth.c | 102 +- crypto/openssl/crypto/evp/legacy_blake2.c | 6 +- crypto/openssl/crypto/evp/legacy_md5_sha1.c | 6 +- crypto/openssl/crypto/evp/legacy_mdc2.c | 2 +- crypto/openssl/crypto/evp/legacy_meth.h | 55 +- crypto/openssl/crypto/evp/legacy_ripemd.c | 2 +- crypto/openssl/crypto/evp/legacy_sha.c | 130 +- crypto/openssl/crypto/evp/legacy_wp.c | 2 +- crypto/openssl/crypto/evp/m_sigver.c | 164 +- crypto/openssl/crypto/evp/mac_lib.c | 37 +- crypto/openssl/crypto/evp/mac_meth.c | 27 +- crypto/openssl/crypto/evp/names.c | 50 +- crypto/openssl/crypto/evp/p5_crpt.c | 24 +- crypto/openssl/crypto/evp/p5_crpt2.c | 69 +- crypto/openssl/crypto/evp/p_dec.c | 7 +- crypto/openssl/crypto/evp/p_enc.c | 7 +- crypto/openssl/crypto/evp/p_lib.c | 569 +- crypto/openssl/crypto/evp/p_open.c | 6 +- crypto/openssl/crypto/evp/p_seal.c | 13 +- crypto/openssl/crypto/evp/p_sign.c | 8 +- crypto/openssl/crypto/evp/p_verify.c | 8 +- crypto/openssl/crypto/evp/pbe_scrypt.c | 32 +- crypto/openssl/crypto/evp/pmeth_check.c | 25 +- crypto/openssl/crypto/evp/pmeth_gn.c | 61 +- crypto/openssl/crypto/evp/pmeth_lib.c | 726 +- crypto/openssl/crypto/evp/signature.c | 127 +- crypto/openssl/crypto/ex_data.c | 45 +- crypto/openssl/crypto/ffc/ffc_backend.c | 16 +- crypto/openssl/crypto/ffc/ffc_dh.c | 64 +- crypto/openssl/crypto/ffc/ffc_key_generate.c | 2 +- crypto/openssl/crypto/ffc/ffc_key_validate.c | 10 +- crypto/openssl/crypto/ffc/ffc_params.c | 62 +- crypto/openssl/crypto/ffc/ffc_params_generate.c | 186 +- crypto/openssl/crypto/ffc/ffc_params_validate.c | 46 +- crypto/openssl/crypto/getenv.c | 18 +- crypto/openssl/crypto/hmac/hmac.c | 32 +- crypto/openssl/crypto/hmac/hmac_local.h | 4 +- crypto/openssl/crypto/http/http_client.c | 330 +- crypto/openssl/crypto/http/http_err.c | 106 +- crypto/openssl/crypto/http/http_lib.c | 46 +- crypto/openssl/crypto/idea/i_cbc.c | 4 +- crypto/openssl/crypto/idea/i_cfb64.c | 7 +- crypto/openssl/crypto/idea/i_ecb.c | 2 +- crypto/openssl/crypto/idea/i_ofb64.c | 7 +- crypto/openssl/crypto/idea/idea_local.h | 179 +- crypto/openssl/crypto/info.c | 169 +- crypto/openssl/crypto/init.c | 162 +- crypto/openssl/crypto/initthread.c | 19 +- crypto/openssl/crypto/lhash/lh_stats.c | 14 +- crypto/openssl/crypto/lhash/lhash.c | 23 +- crypto/openssl/crypto/lhash/lhash_local.h | 4 +- crypto/openssl/crypto/md2/md2_dgst.c | 296 +- crypto/openssl/crypto/md4/md4_dgst.c | 16 +- crypto/openssl/crypto/md4/md4_local.h | 63 +- crypto/openssl/crypto/md4/md4_one.c | 2 +- crypto/openssl/crypto/md5/md5_dgst.c | 16 +- crypto/openssl/crypto/md5/md5_local.h | 96 +- crypto/openssl/crypto/md5/md5_one.c | 2 +- crypto/openssl/crypto/mdc2/mdc2dgst.c | 16 +- crypto/openssl/crypto/mem.c | 95 +- crypto/openssl/crypto/mem_sec.c | 131 +- crypto/openssl/crypto/mips_arch.h | 48 +- crypto/openssl/crypto/modes/asm/ghash-armv4.pl | 4 +- crypto/openssl/crypto/modes/cbc128.c | 38 +- crypto/openssl/crypto/modes/ccm128.c | 108 +- crypto/openssl/crypto/modes/cfb128.c | 64 +- crypto/openssl/crypto/modes/ctr128.c | 38 +- crypto/openssl/crypto/modes/cts128.c | 86 +- crypto/openssl/crypto/modes/gcm128.c | 638 +- crypto/openssl/crypto/modes/ocb128.c | 67 +- crypto/openssl/crypto/modes/ofb128.c | 20 +- crypto/openssl/crypto/modes/siv128.c | 61 +- crypto/openssl/crypto/modes/wrap128.c | 49 +- crypto/openssl/crypto/modes/xts128.c | 22 +- crypto/openssl/crypto/o_dir.c | 2 + crypto/openssl/crypto/o_fopen.c | 46 +- crypto/openssl/crypto/o_str.c | 90 +- crypto/openssl/crypto/o_time.c | 20 +- crypto/openssl/crypto/objects/o_names.c | 44 +- crypto/openssl/crypto/objects/obj_compat.h | 62 +- crypto/openssl/crypto/objects/obj_dat.c | 38 +- crypto/openssl/crypto/objects/obj_dat.h | 2 +- crypto/openssl/crypto/objects/obj_err.c | 10 +- crypto/openssl/crypto/objects/obj_lib.c | 6 +- crypto/openssl/crypto/ocsp/ocsp_asn.c | 90 +- crypto/openssl/crypto/ocsp/ocsp_cl.c | 42 +- crypto/openssl/crypto/ocsp/ocsp_err.c | 90 +- crypto/openssl/crypto/ocsp/ocsp_ext.c | 77 +- crypto/openssl/crypto/ocsp/ocsp_http.c | 16 +- crypto/openssl/crypto/ocsp/ocsp_lib.c | 12 +- crypto/openssl/crypto/ocsp/ocsp_local.h | 94 +- crypto/openssl/crypto/ocsp/ocsp_prn.c | 61 +- crypto/openssl/crypto/ocsp/ocsp_srv.c | 61 +- crypto/openssl/crypto/ocsp/ocsp_vfy.c | 50 +- crypto/openssl/crypto/ocsp/v3_ocsp.c | 60 +- crypto/openssl/crypto/packet.c | 48 +- crypto/openssl/crypto/param_build.c | 162 +- crypto/openssl/crypto/param_build_set.c | 20 +- crypto/openssl/crypto/params.c | 153 +- crypto/openssl/crypto/params_dup.c | 39 +- crypto/openssl/crypto/params_from_text.c | 24 +- crypto/openssl/crypto/passphrase.c | 73 +- crypto/openssl/crypto/pem/pem_all.c | 35 +- crypto/openssl/crypto/pem/pem_err.c | 90 +- crypto/openssl/crypto/pem/pem_info.c | 61 +- crypto/openssl/crypto/pem/pem_lib.c | 122 +- crypto/openssl/crypto/pem/pem_local.h | 145 +- crypto/openssl/crypto/pem/pem_oth.c | 2 +- crypto/openssl/crypto/pem/pem_pk8.c | 74 +- crypto/openssl/crypto/pem/pem_pkey.c | 115 +- crypto/openssl/crypto/pem/pem_sign.c | 6 +- crypto/openssl/crypto/pem/pvkfmt.c | 112 +- crypto/openssl/crypto/perlasm/sparcv9_modes.pl | 10 +- crypto/openssl/crypto/perlasm/x86_64-xlate.pl | 5 +- crypto/openssl/crypto/pkcs12/p12_add.c | 45 +- crypto/openssl/crypto/pkcs12/p12_asn.c | 46 +- crypto/openssl/crypto/pkcs12/p12_attr.c | 33 +- crypto/openssl/crypto/pkcs12/p12_crpt.c | 25 +- crypto/openssl/crypto/pkcs12/p12_crt.c | 86 +- crypto/openssl/crypto/pkcs12/p12_decr.c | 81 +- crypto/openssl/crypto/pkcs12/p12_init.c | 3 +- crypto/openssl/crypto/pkcs12/p12_key.c | 58 +- crypto/openssl/crypto/pkcs12/p12_kiss.c | 31 +- crypto/openssl/crypto/pkcs12/p12_local.h | 6 +- crypto/openssl/crypto/pkcs12/p12_mutl.c | 59 +- crypto/openssl/crypto/pkcs12/p12_npas.c | 20 +- crypto/openssl/crypto/pkcs12/p12_p8d.c | 11 +- crypto/openssl/crypto/pkcs12/p12_p8e.c | 31 +- crypto/openssl/crypto/pkcs12/p12_sbag.c | 97 +- crypto/openssl/crypto/pkcs12/p12_utl.c | 83 +- crypto/openssl/crypto/pkcs12/pk12err.c | 64 +- crypto/openssl/crypto/pkcs7/bio_pk7.c | 2 +- crypto/openssl/crypto/pkcs7/pk7_asn1.c | 125 +- crypto/openssl/crypto/pkcs7/pk7_attr.c | 16 +- crypto/openssl/crypto/pkcs7/pk7_doit.c | 121 +- crypto/openssl/crypto/pkcs7/pk7_lib.c | 60 +- crypto/openssl/crypto/pkcs7/pk7_mime.c | 12 +- crypto/openssl/crypto/pkcs7/pk7_smime.c | 59 +- crypto/openssl/crypto/pkcs7/pkcs7err.c | 138 +- crypto/openssl/crypto/poly1305/poly1305.c | 102 +- crypto/openssl/crypto/poly1305/poly1305_base2_44.c | 29 +- crypto/openssl/crypto/poly1305/poly1305_ieee754.c | 279 +- crypto/openssl/crypto/poly1305/poly1305_ppc.c | 24 +- crypto/openssl/crypto/ppccap.c | 110 +- crypto/openssl/crypto/property/defn_cache.c | 19 +- crypto/openssl/crypto/property/property.c | 80 +- crypto/openssl/crypto/property/property_err.c | 36 +- crypto/openssl/crypto/property/property_local.h | 18 +- crypto/openssl/crypto/property/property_parse.c | 139 +- crypto/openssl/crypto/property/property_query.c | 22 +- crypto/openssl/crypto/property/property_string.c | 37 +- crypto/openssl/crypto/provider.c | 24 +- crypto/openssl/crypto/provider_child.c | 55 +- crypto/openssl/crypto/provider_conf.c | 56 +- crypto/openssl/crypto/provider_core.c | 267 +- crypto/openssl/crypto/provider_local.h | 8 +- crypto/openssl/crypto/provider_predefined.c | 4 +- crypto/openssl/crypto/punycode.c | 27 +- crypto/openssl/crypto/rand/prov_seed.c | 18 +- crypto/openssl/crypto/rand/rand_deprecated.c | 8 +- crypto/openssl/crypto/rand/rand_egd.c | 103 +- crypto/openssl/crypto/rand/rand_err.c | 156 +- crypto/openssl/crypto/rand/rand_lib.c | 182 +- crypto/openssl/crypto/rand/rand_local.h | 30 +- crypto/openssl/crypto/rand/rand_meth.c | 2 +- crypto/openssl/crypto/rand/rand_pool.c | 15 +- crypto/openssl/crypto/rand/randfile.c | 97 +- crypto/openssl/crypto/rc2/rc2_cbc.c | 30 +- crypto/openssl/crypto/rc2/rc2_ecb.c | 2 +- crypto/openssl/crypto/rc2/rc2_local.h | 250 +- crypto/openssl/crypto/rc2/rc2_skey.c | 284 +- crypto/openssl/crypto/rc2/rc2cfb64.c | 8 +- crypto/openssl/crypto/rc2/rc2ofb64.c | 8 +- crypto/openssl/crypto/rc4/rc4_enc.c | 16 +- crypto/openssl/crypto/rc4/rc4_local.h | 6 +- crypto/openssl/crypto/rc4/rc4_skey.c | 15 +- crypto/openssl/crypto/rc5/rc5_ecb.c | 2 +- crypto/openssl/crypto/rc5/rc5_enc.c | 4 +- crypto/openssl/crypto/rc5/rc5_local.h | 330 +- crypto/openssl/crypto/rc5/rc5_skey.c | 5 +- crypto/openssl/crypto/rc5/rc5cfb64.c | 8 +- crypto/openssl/crypto/rc5/rc5ofb64.c | 8 +- crypto/openssl/crypto/ripemd/rmd_dgst.c | 19 +- crypto/openssl/crypto/ripemd/rmd_local.h | 112 +- crypto/openssl/crypto/ripemd/rmdconst.h | 360 +- crypto/openssl/crypto/rsa/rsa_acvp_test_params.c | 29 +- crypto/openssl/crypto/rsa/rsa_ameth.c | 274 +- crypto/openssl/crypto/rsa/rsa_asn1.c | 51 +- crypto/openssl/crypto/rsa/rsa_backend.c | 119 +- crypto/openssl/crypto/rsa/rsa_chk.c | 12 +- crypto/openssl/crypto/rsa/rsa_crpt.c | 18 +- crypto/openssl/crypto/rsa/rsa_depr.c | 4 +- crypto/openssl/crypto/rsa/rsa_err.c | 274 +- crypto/openssl/crypto/rsa/rsa_gen.c | 45 +- crypto/openssl/crypto/rsa/rsa_lib.c | 159 +- crypto/openssl/crypto/rsa/rsa_local.h | 72 +- crypto/openssl/crypto/rsa/rsa_meth.c | 132 +- crypto/openssl/crypto/rsa/rsa_mp.c | 4 +- crypto/openssl/crypto/rsa/rsa_none.c | 4 +- crypto/openssl/crypto/rsa/rsa_oaep.c | 52 +- crypto/openssl/crypto/rsa/rsa_ossl.c | 126 +- crypto/openssl/crypto/rsa/rsa_pk1.c | 72 +- crypto/openssl/crypto/rsa/rsa_pmeth.c | 104 +- crypto/openssl/crypto/rsa/rsa_pss.c | 64 +- crypto/openssl/crypto/rsa/rsa_saos.c | 17 +- crypto/openssl/crypto/rsa/rsa_schemes.c | 22 +- crypto/openssl/crypto/rsa/rsa_sign.c | 243 +- crypto/openssl/crypto/rsa/rsa_sp800_56b_check.c | 121 +- crypto/openssl/crypto/rsa/rsa_sp800_56b_gen.c | 24 +- crypto/openssl/crypto/rsa/rsa_x931.c | 5 +- crypto/openssl/crypto/rsa/rsa_x931g.c | 32 +- crypto/openssl/crypto/s390x_arch.h | 178 +- crypto/openssl/crypto/s390xcap.c | 704 +- crypto/openssl/crypto/s390xcpuid.pl | 8 +- crypto/openssl/crypto/seed/seed.c | 752 +- crypto/openssl/crypto/seed/seed_cbc.c | 8 +- crypto/openssl/crypto/seed/seed_cfb.c | 8 +- crypto/openssl/crypto/seed/seed_ecb.c | 2 +- crypto/openssl/crypto/seed/seed_local.h | 123 +- crypto/openssl/crypto/seed/seed_ofb.c | 6 +- crypto/openssl/crypto/self_test_core.c | 32 +- crypto/openssl/crypto/sha/asm/keccak1600-s390x.pl | 3 +- crypto/openssl/crypto/sha/keccak1600.c | 271 +- crypto/openssl/crypto/sha/sha256.c | 120 +- crypto/openssl/crypto/sha/sha3.c | 2 +- crypto/openssl/crypto/sha/sha512.c | 219 +- crypto/openssl/crypto/sha/sha_local.h | 251 +- crypto/openssl/crypto/sha/sha_ppc.c | 6 +- crypto/openssl/crypto/siphash/siphash.c | 61 +- crypto/openssl/crypto/sm2/sm2_crypt.c | 80 +- crypto/openssl/crypto/sm2/sm2_err.c | 42 +- crypto/openssl/crypto/sm2/sm2_key.c | 8 +- crypto/openssl/crypto/sm2/sm2_sign.c | 142 +- crypto/openssl/crypto/sm3/legacy_sm3.c | 3 +- crypto/openssl/crypto/sm3/sm3.c | 6 +- crypto/openssl/crypto/sm3/sm3_local.h | 90 +- crypto/openssl/crypto/sm4/sm4.c | 42 +- crypto/openssl/crypto/sparcv9cap.c | 85 +- crypto/openssl/crypto/sparse_array.c | 28 +- crypto/openssl/crypto/srp/srp_lib.c | 71 +- crypto/openssl/crypto/srp/srp_vfy.c | 117 +- crypto/openssl/crypto/stack/stack.c | 25 +- crypto/openssl/crypto/store/store_err.c | 92 +- crypto/openssl/crypto/store/store_lib.c | 217 +- crypto/openssl/crypto/store/store_local.h | 24 +- crypto/openssl/crypto/store/store_meth.c | 74 +- crypto/openssl/crypto/store/store_register.c | 52 +- crypto/openssl/crypto/store/store_result.c | 114 +- crypto/openssl/crypto/store/store_strings.c | 12 +- crypto/openssl/crypto/threads_none.c | 25 +- crypto/openssl/crypto/threads_pthread.c | 94 +- crypto/openssl/crypto/threads_win.c | 56 +- crypto/openssl/crypto/trace.c | 131 +- crypto/openssl/crypto/ts/ts_asn1.c | 64 +- crypto/openssl/crypto/ts/ts_conf.c | 108 +- crypto/openssl/crypto/ts/ts_err.c | 122 +- crypto/openssl/crypto/ts/ts_lib.c | 4 +- crypto/openssl/crypto/ts/ts_local.h | 18 +- crypto/openssl/crypto/ts/ts_req_print.c | 2 +- crypto/openssl/crypto/ts/ts_rsp_print.c | 41 +- crypto/openssl/crypto/ts/ts_rsp_sign.c | 172 +- crypto/openssl/crypto/ts/ts_rsp_verify.c | 104 +- crypto/openssl/crypto/ts/ts_verify_ctx.c | 6 +- crypto/openssl/crypto/txt_db/txt_db.c | 22 +- crypto/openssl/crypto/ui/ui_err.c | 36 +- crypto/openssl/crypto/ui/ui_lib.c | 260 +- crypto/openssl/crypto/ui/ui_local.h | 56 +- crypto/openssl/crypto/ui/ui_null.c | 10 +- crypto/openssl/crypto/ui/ui_openssl.c | 536 +- crypto/openssl/crypto/ui/ui_util.c | 65 +- crypto/openssl/crypto/uid.c | 34 +- crypto/openssl/crypto/vms_rms.h | 86 +- crypto/openssl/crypto/whrlpool/wp_block.c | 811 +- crypto/openssl/crypto/whrlpool/wp_dgst.c | 20 +- crypto/openssl/crypto/x509/by_dir.c | 76 +- crypto/openssl/crypto/x509/by_file.c | 66 +- crypto/openssl/crypto/x509/by_store.c | 175 +- crypto/openssl/crypto/x509/pcy_cache.c | 24 +- crypto/openssl/crypto/x509/pcy_data.c | 2 +- crypto/openssl/crypto/x509/pcy_lib.c | 19 +- crypto/openssl/crypto/x509/pcy_local.h | 34 +- crypto/openssl/crypto/x509/pcy_map.c | 10 +- crypto/openssl/crypto/x509/pcy_node.c | 28 +- crypto/openssl/crypto/x509/pcy_tree.c | 107 +- crypto/openssl/crypto/x509/standard_exts.h | 5 - crypto/openssl/crypto/x509/t_crl.c | 7 +- crypto/openssl/crypto/x509/t_req.c | 24 +- crypto/openssl/crypto/x509/t_x509.c | 75 +- crypto/openssl/crypto/x509/v3_addr.c | 306 +- crypto/openssl/crypto/x509/v3_admis.c | 52 +- crypto/openssl/crypto/x509/v3_admis.h | 28 +- crypto/openssl/crypto/x509/v3_akeya.c | 6 +- crypto/openssl/crypto/x509/v3_akid.c | 30 +- crypto/openssl/crypto/x509/v3_asid.c | 213 +- crypto/openssl/crypto/x509/v3_bcons.c | 28 +- crypto/openssl/crypto/x509/v3_bitst.c | 54 +- crypto/openssl/crypto/x509/v3_conf.c | 77 +- crypto/openssl/crypto/x509/v3_cpols.c | 93 +- crypto/openssl/crypto/x509/v3_crld.c | 135 +- crypto/openssl/crypto/x509/v3_enum.c | 30 +- crypto/openssl/crypto/x509/v3_extku.c | 23 +- crypto/openssl/crypto/x509/v3_genn.c | 45 +- crypto/openssl/crypto/x509/v3_ia5.c | 6 +- crypto/openssl/crypto/x509/v3_info.c | 47 +- crypto/openssl/crypto/x509/v3_int.c | 2 +- crypto/openssl/crypto/x509/v3_ist.c | 37 +- crypto/openssl/crypto/x509/v3_lib.c | 29 +- crypto/openssl/crypto/x509/v3_ncons.c | 98 +- crypto/openssl/crypto/x509/v3_pci.c | 65 +- crypto/openssl/crypto/x509/v3_pcia.c | 14 +- crypto/openssl/crypto/x509/v3_pcons.c | 30 +- crypto/openssl/crypto/x509/v3_pku.c | 12 +- crypto/openssl/crypto/x509/v3_pmaps.c | 27 +- crypto/openssl/crypto/x509/v3_prn.c | 29 +- crypto/openssl/crypto/x509/v3_purp.c | 136 +- crypto/openssl/crypto/x509/v3_san.c | 229 +- crypto/openssl/crypto/x509/v3_skid.c | 15 +- crypto/openssl/crypto/x509/v3_sxnet.c | 28 +- crypto/openssl/crypto/x509/v3_tlsf.c | 29 +- crypto/openssl/crypto/x509/v3_utf8.c | 11 +- crypto/openssl/crypto/x509/v3_utl.c | 166 +- crypto/openssl/crypto/x509/v3err.c | 236 +- crypto/openssl/crypto/x509/x509_att.c | 93 +- crypto/openssl/crypto/x509/x509_cmp.c | 48 +- crypto/openssl/crypto/x509/x509_d2.c | 15 +- crypto/openssl/crypto/x509/x509_err.c | 134 +- crypto/openssl/crypto/x509/x509_ext.c | 35 +- crypto/openssl/crypto/x509/x509_local.h | 118 +- crypto/openssl/crypto/x509/x509_lu.c | 98 +- crypto/openssl/crypto/x509/x509_meth.c | 27 +- crypto/openssl/crypto/x509/x509_obj.c | 19 +- crypto/openssl/crypto/x509/x509_r2x.c | 9 +- crypto/openssl/crypto/x509/x509_req.c | 32 +- crypto/openssl/crypto/x509/x509_set.c | 14 +- crypto/openssl/crypto/x509/x509_trust.c | 56 +- crypto/openssl/crypto/x509/x509_txt.c | 3 +- crypto/openssl/crypto/x509/x509_v3.c | 22 +- crypto/openssl/crypto/x509/x509_vfy.c | 355 +- crypto/openssl/crypto/x509/x509_vpm.c | 157 +- crypto/openssl/crypto/x509/x509cset.c | 2 +- crypto/openssl/crypto/x509/x509name.c | 54 +- crypto/openssl/crypto/x509/x509type.c | 2 +- crypto/openssl/crypto/x509/x_all.c | 144 +- crypto/openssl/crypto/x509/x_attrib.c | 6 +- crypto/openssl/crypto/x509/x_crl.c | 109 +- crypto/openssl/crypto/x509/x_exten.c | 9 +- crypto/openssl/crypto/x509/x_name.c | 127 +- crypto/openssl/crypto/x509/x_pubkey.c | 147 +- crypto/openssl/crypto/x509/x_req.c | 84 +- crypto/openssl/crypto/x509/x_x509.c | 64 +- crypto/openssl/crypto/x509/x_x509a.c | 14 +- crypto/openssl/demos/bio/client-arg.c | 2 +- crypto/openssl/demos/bio/client-conf.c | 4 +- crypto/openssl/demos/bio/saccept.c | 13 +- crypto/openssl/demos/bio/sconnect.c | 11 +- crypto/openssl/demos/bio/server-arg.c | 13 +- crypto/openssl/demos/bio/server-cmod.c | 11 +- crypto/openssl/demos/bio/server-conf.c | 13 +- crypto/openssl/demos/cipher/aesccm.c | 13 +- crypto/openssl/demos/cipher/aesgcm.c | 10 +- crypto/openssl/demos/cipher/aeskeywrap.c | 99 +- crypto/openssl/demos/cipher/ariacbc.c | 20 +- crypto/openssl/demos/cms/cms_comp.c | 2 +- crypto/openssl/demos/cms/cms_ddec.c | 6 +- crypto/openssl/demos/cms/cms_dec.c | 2 +- crypto/openssl/demos/cms/cms_denc.c | 6 +- crypto/openssl/demos/cms/cms_enc.c | 2 +- crypto/openssl/demos/cms/cms_sign.c | 2 +- crypto/openssl/demos/cms/cms_sign2.c | 2 +- crypto/openssl/demos/cms/cms_uncomp.c | 2 +- crypto/openssl/demos/cms/cms_ver.c | 2 +- crypto/openssl/demos/digest/BIO_f_md.c | 28 +- *** 497080 LINES SKIPPED *** From nobody Mon Apr 13 00:21:02 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 4fv7P00Z52z6ZBSB for ; Mon, 13 Apr 2026 00:21:08 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fv7Nz4J08z3W0D for ; Mon, 13 Apr 2026 00:21:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776039667; 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=/P5I7TzvFReC+2Vh+bZeasb8h4DFBaUv7FnPz7bYLQ0=; b=VImVjg3aGHhwUZtgWDPWLvr5+bIXdud0mA5F9lRDNDlCp5ivdeUxHLCkDxbk7RDJEkzlGE 2xKuNgzwGdEaqiobNac6aIUrOk5CvNO/3xOI9Bw29e5Y3TwPL//f46heKlATk+emKc8tDd ikZjwzCZPvFa0voHfR+xR/l6Kzo4SljfTGiAyu1SmL9NNqgE+t5WaGmvcYTcyd4ce+ylKs I3TfsogfK3UVb/Z724vsPD+Yov0Rxy50kVcU0iyJUWV38G6Np7oDQQbIkN5BiAbOpXuQiZ E6k223om9Gtu6IWhebCKIRsFAyC0nAOdwJ2WvywVORcpODh5qcGxJQTWqit2/Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776039667; a=rsa-sha256; cv=none; b=Fu/fVJbgiYxh1Mwq+/dc0tO31fxA+Ph1SSgPWCxwaf4kMCvtB+cuOKxxjhsi43is4MX014 lgqpMIZ1Ga75vNsQ8g96rFEg2IPOYQR1zsCIZDKc0Zoqoyx7r6X8yAEz7XNMUIkrPjpA9t a9t3QypGg/EiAO0bMWpKUJnuTuzuvIvhc+NnVNGL/FtP2kahBccmLWvrAzFDVsJM8jd9mC c62jECIfIjyH5LFutQ1ebW62G/iZaQ9FxbULoG8gwoAHtytj1DKZPfCeFeCGAhB/oq41w0 HIbV2FTrE8ZaTuKCfsl8VwHMybKYb2cJcH31+srh545YTVzixliDvmKHpXSbfw== 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=1776039667; 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=/P5I7TzvFReC+2Vh+bZeasb8h4DFBaUv7FnPz7bYLQ0=; b=S/DBcNAQroSowJ3HRFzVPpinZufd+Frh+A5taawdvAPL5HRJdxifIw2Z+g/Qufx7i3XY+J k4bmnhlFhbMyVBM0o5bLUMTzxWl+MGvxBljdV4viCFNtx0Cpk7kbjDIFSbhpJ4X+TjduvW lUIOrdtho39KiOLsabkwzcjSk5xjQ0i8VM7W8VJ5hhZzu3BPX42w+Ek/n5K/1cWb7Ur35J JxLJeuUyHR9tWFQrhtpNqd9FrE233uTVa9csYN6e3tt+UARZp2QypbG23ULt/ZsmV2vWYb q9kD08AIUvz0zCAJpU4GouMbYhxkdUA4DgNUyVF6vaD/K8bdygLCRPMOJhS9aQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fv7Nz2hPBzgFf for ; Mon, 13 Apr 2026 00:21:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3653b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 00:21:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ryan Libby Subject: git: 8085c5a5c1e5 - main - nvme_ctrlr_linux_passthru_cmd: correct size of upages_small array 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: rlibby X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8085c5a5c1e50eb478fb7b59fae201d9ab4207f0 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 00:21:02 +0000 Message-Id: <69dc36ee.3653b.3a0fbfd6@gitrepo.freebsd.org> The branch main has been updated by rlibby: URL: https://cgit.FreeBSD.org/src/commit/?id=8085c5a5c1e50eb478fb7b59fae201d9ab4207f0 commit 8085c5a5c1e50eb478fb7b59fae201d9ab4207f0 Author: Ryan Libby AuthorDate: 2026-04-12 23:39:41 +0000 Commit: Ryan Libby CommitDate: 2026-04-12 23:39:41 +0000 nvme_ctrlr_linux_passthru_cmd: correct size of upages_small array The size broke when upages was converted from array to double pointer. Reported by: gcc -Wsizeof-pointer-div Reviewed by: imp Fixes: 82ff1c334b97 ("nvme: Allow larger user request sizes") Differential Revision: https://reviews.freebsd.org/D56368 --- sys/dev/nvme/nvme_ctrlr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index e5094e909a24..447a824df8be 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -1518,8 +1518,8 @@ nvme_ctrlr_linux_passthru_cmd(struct nvme_controller *ctrlr, } if (is_user) { ret = nvme_user_ioctl_req(npc->addr, npc->data_len, - npc->opcode & 0x1, &upages, nitems(upages), &npages, - &req, nvme_npc_done, npc); + npc->opcode & 0x1, &upages, nitems(upages_small), + &npages, &req, nvme_npc_done, npc); if (ret != 0) return (ret); } else From nobody Mon Apr 13 01:05:51 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 4fv8Nh5lg3z6ZDxq for ; Mon, 13 Apr 2026 01:05:56 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fv8Nh3xcbz3Ztq for ; Mon, 13 Apr 2026 01:05:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776042356; 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=J5nwZCmDZKlXaquKNMYNO6jRMX6EaFPxUkZgN0GTsPs=; b=A8YOBR7/E4bwAjLeeXInMYNipiXu3bzoQx9FBST96HyecWNV9D7vDcbidyxwsMHuo3JuTZ TxjEpSqc6yW5TQI95zSdeO7rcLwyc1WfV8ZWIE0CtKYjkSJHxOa5eBkhzzrJFm805c7EQp M0MGblZ6DqGmUtmb2wITFjBmLqfON+wgr1Gwn75fRGkEpkrYaEjQlbH3O2gE3GG55xQQxj eBptdp7TJGcSQ8XHnbjJ0tgjx1qgxwYAaxRnfQKXnWzna+Riq5t409MAE3dvx0Um7wtqDJ Qh+5ymPpp/h9smEep5yA1Xr+Es9keEpN5y/ca7oG7LUND/iGWeLzGB2BX9t1Jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776042356; a=rsa-sha256; cv=none; b=DleVQ3EQupYoti+A1ro5MjIq3S+umZjwY8EySXcJv3hP2HjmjG2v0zVg0jQKxWH3kLCwBu B9Ue+a2hAynabf0/mvw6Z60qaR4nDlZCScGZtTBPceOIED/7HjfCa6oZl7vEJCHZCpfzHw AT6tzgj4qw/TmjBcBVfl2yASkWV1rgFaf2qXVSlaCepZ0EnFie8pbF+6lic/Wt9JW3WeW6 c3EMuRbHqdgz5TKzvY1l0PPhdDGfkUIclvhycFirhldFfKXU0zQg67eJuiunslU54x2Fu3 qcSIpspA0lWx8JnH/NedpeBycRArtmFrBZKIjuNWTLfN12uLPY0HqJDD54NVhw== 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=1776042356; 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=J5nwZCmDZKlXaquKNMYNO6jRMX6EaFPxUkZgN0GTsPs=; b=rRF+fqY64L365qoTje/NkzQv1/IMxEUa5HL7xZW1ujUVAGNNYpzTYtltT/7F1MEnlKEIJK 2pABWKba/v9Vx54r3xE5nlmAbyh6EwlO9GGufNvJvBP677sA+1XU8Mayh8CXhvOGlgl723 aFUXKpE49vytJCNY5J2XtzulcINJtQGsl7KvpCBAmEPSTTYZ2bCvHFs/YQfMH4MHqj6nce 4r35us9F83E05Roo8PjwechAJD04UZLKvrFHX6vnWfIlh1jdt7HWkzN7+8rPmzHTrPEqqd HYFVGdlqr596AB2sDk5iE27lCoryxcMU7tySzJw+dUC0QQMe35JaNCo4a43baw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fv8Nh32Lbzj46 for ; Mon, 13 Apr 2026 01:05:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a7e2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 01:05:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: b5737f2ff8d3 - stable/15 - mk: Disable blacklist when disabling blocklist 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: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b5737f2ff8d382bdee12b19c7f27580a8da5023c Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 01:05:51 +0000 Message-Id: <69dc416f.3a7e2.4b9d5b5b@gitrepo.freebsd.org> The branch stable/15 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=b5737f2ff8d382bdee12b19c7f27580a8da5023c commit b5737f2ff8d382bdee12b19c7f27580a8da5023c Author: Jose Luis Duran AuthorDate: 2026-03-29 16:14:50 +0000 Commit: Jose Luis Duran CommitDate: 2026-04-13 01:05:12 +0000 mk: Disable blacklist when disabling blocklist WITHOUT_BLOCKLIST, when set, should enforce WITHOUT_BLACKLIST. This fixes the build when WITHOUT_BLOCKLIST=yes is set. Reported by: ivy Reviewed by: ivy Fixes: 7238317403b9 ("blocklist: Rename blacklist to blocklist") MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D56118 (cherry picked from commit 0d9676e1ca92febd42fbebef8d6833a0939d3f7c) --- share/man/man5/src.conf.5 | 19 ++++++++++++++++++- share/mk/src.opts.mk | 8 ++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index d5f44e79bee7..ad1a2b3ed93a 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -1,5 +1,5 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. -.Dd February 23, 2026 +.Dd March 28, 2026 .Dt SRC.CONF 5 .Os .Sh NAME @@ -261,9 +261,20 @@ Set this if you do not want to build .Xr blocklistd 8 and .Xr blocklistctl 8 . +When set, it enforces these options: +.Pp +.Bl -item -compact +.It +.Va WITHOUT_BLACKLIST +.El +.Pp When set, these options are also in effect: .Pp .Bl -inset -compact +.It Va WITHOUT_BLACKLIST_SUPPORT +(unless +.Va WITH_BLACKLIST_SUPPORT +is set explicitly) .It Va WITHOUT_BLOCKLIST_SUPPORT (unless .Va WITH_BLOCKLIST_SUPPORT @@ -276,6 +287,12 @@ support, like .Xr fingerd 8 and .Xr sshd 8 . +When set, it enforces these options: +.Pp +.Bl -item -compact +.It +.Va WITHOUT_BLACKLIST_SUPPORT +.El .It Va WITHOUT_BLUETOOTH Do not build Bluetooth related kernel modules, programs and libraries. .It Va WITHOUT_BOOT diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 88fd83a3c723..a0bf8c2d454f 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -408,6 +408,14 @@ MK_BLOCKLIST:= no MK_BLOCKLIST_SUPPORT:= no .endif +.if ${MK_BLOCKLIST} == "no" +MK_BLACKLIST:= no +.endif + +.if ${MK_BLOCKLIST_SUPPORT} == "no" +MK_BLACKLIST_SUPPORT:= no +.endif + .if ${MK_CDDL} == "no" MK_CTF:= no MK_DTRACE:= no From nobody Mon Apr 13 01:20:27 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 4fv8jX2VnRz6ZFnf for ; Mon, 13 Apr 2026 01:20:32 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fv8jX1p6kz3bSs for ; Mon, 13 Apr 2026 01:20:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776043232; 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=OITFkssOg+T1dcVrXy6hXiFFQYVN5irY7haJV1N7dhU=; b=nDqxl8HMEazIYYDC+5m1twU1/dGKYzFZs8Dsm24xjwiWfFdIAOBOq9lHN/m8NyBP8V8MZg pyXwVVzSLKM3WlWaF031bcFJM/1DChrwmfWArof6Pe0kn3CsquUPF07hkaCpBjIaMygLrD t0BImxfYZ4zkeA0HRgbZWXLzgy6vrHQMhPp1fVxaoCWbFz33ptNuv0eYvv+jt19CpGSYxT MVtmb6h/P2sh+oBCEleO79dxuCVpKCGknkg4aByJpAgspCAj1RddeJk56EFSgu77bukbK8 eP+O4bnvqtWTtwvl2zHlEAeDgnO2jOnLa7qy24gPl2NohiQnd733duAXRNYT+g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776043232; a=rsa-sha256; cv=none; b=rafFSsHyXdlukf+dqYBES9hMXIkuKQ+xYBxkIU5V9eequ823KaOJ4aDz8j9PjsudmKV1rR oWkmoZmlFdhlUn2Cq+71Z/92HPdYF/wamiyrwOQyss4z5ypw7zVO0OrdZAMo2g/4PADHyE 6kGY/WlxWSa9UDaWDZacZCFR8zH5bzpV6Rel3EhSLOpjOjgfW/vXcvPxmJcWAccF3qleVh +mjJCIY8YFO4mtHqQxRJ77OD6xDlKeMdIPIjvJ4VVVDjwibdqlr2qZaVwUi4ehdMc/6pD4 F+tiMoBDFbOAziMWyQ9cA+TPJtTiYbCuRb+wnTKLO3nVRvP7el+PPktw6uFquA== 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=1776043232; 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=OITFkssOg+T1dcVrXy6hXiFFQYVN5irY7haJV1N7dhU=; b=FuFVci7Lgz3oN7x5/8tIVGKpKycwxIjcj67oiP7v7OcCjaqG8y3o1/JjGVcoDMtfOtupho EhJ+P/Eh64nCQNsm4KICejQrqoQ6TiY4wd9I/ZE4gdQsmR1Uf0GRFDF5YPHmbs8p2aSl+S 2PCNOYmEpwwhM0nzev/UxAOCBEWFBjKinTyXR+rYbTK+iMwMNIr9QcY0JaP4pZeCB3Etim CqOjv8kwV7V0PC8RtItyAoS/glw6hhU1YMFYk0JCj6+oT50Ll3FLFjXj4JNbyYAZCGN7ZL sm+xBDhTXymXRxwsxZDK2+EAp0lgR8i6EWfXbxTN5QP3dFSqCavIyBTW2qDPuA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fv8jX1PT5zjPP for ; Mon, 13 Apr 2026 01:20:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c16c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 01:20:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: bd6548f4b462 - stable/15 - nfsid.h: Put the nfsd_idargs structure in a new .h 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: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bd6548f4b462a731cde55a57174ff56b423de2fb Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 01:20:27 +0000 Message-Id: <69dc44db.3c16c.4edf3aa5@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=bd6548f4b462a731cde55a57174ff56b423de2fb commit bd6548f4b462a731cde55a57174ff56b423de2fb Author: Rick Macklem AuthorDate: 2026-04-06 14:09:01 +0000 Commit: Rick Macklem CommitDate: 2026-04-13 01:18:41 +0000 nfsid.h: Put the nfsd_idargs structure in a new .h This patch moves the definition of the nfsd_idargs structure out of nfs.h and into a new file called nfsid.h. This is being done so that it can be included in nfs_diskless.c in a future commit. There should be no semantics change from this commit. (cherry picked from commit e6db4dd9d7216067388ae91ac73c3917a93f9420) --- sys/fs/nfs/nfs.h | 23 --------------- sys/fs/nfs/nfs_commonport.c | 1 + sys/fs/nfs/nfs_commonsubs.c | 1 + sys/fs/nfs/nfs_var.h | 1 - sys/fs/nfs/nfsid.h | 67 ++++++++++++++++++++++++++++++++++++++++++++ usr.sbin/nfsuserd/nfsuserd.c | 1 + 6 files changed, 70 insertions(+), 24 deletions(-) diff --git a/sys/fs/nfs/nfs.h b/sys/fs/nfs/nfs.h index 7903542be91d..b30e4f17b7c5 100644 --- a/sys/fs/nfs/nfs.h +++ b/sys/fs/nfs/nfs.h @@ -235,18 +235,6 @@ struct nfscbd_args { u_short port; /* Port# for callbacks */ }; -struct nfsd_idargs { - int nid_flag; /* Flags (see below) */ - uid_t nid_uid; /* user/group id */ - gid_t nid_gid; - int nid_usermax; /* Upper bound on user name cache */ - int nid_usertimeout;/* User name timeout (minutes) */ - u_char *nid_name; /* Name */ - int nid_namelen; /* and its length */ - gid_t *nid_grps; /* and the list */ - int nid_ngroup; /* Size of groups list */ -}; - struct nfsd_oidargs { int nid_flag; /* Flags (see below) */ uid_t nid_uid; /* user/group id */ @@ -391,17 +379,6 @@ struct nfsreferral { #define NFSLCK_WANTBITS \ (NFSLCK_WANTWDELEG | NFSLCK_WANTRDELEG | NFSLCK_WANTNODELEG) -/* And bits for nid_flag */ -#define NFSID_INITIALIZE 0x0001 -#define NFSID_ADDUID 0x0002 -#define NFSID_DELUID 0x0004 -#define NFSID_ADDUSERNAME 0x0008 -#define NFSID_DELUSERNAME 0x0010 -#define NFSID_ADDGID 0x0020 -#define NFSID_DELGID 0x0040 -#define NFSID_ADDGROUPNAME 0x0080 -#define NFSID_DELGROUPNAME 0x0100 - /* * fs.nfs sysctl(3) identifiers */ diff --git a/sys/fs/nfs/nfs_commonport.c b/sys/fs/nfs/nfs_commonport.c index 44fcbe2d5722..dbc2b3b942e9 100644 --- a/sys/fs/nfs/nfs_commonport.c +++ b/sys/fs/nfs/nfs_commonport.c @@ -40,6 +40,7 @@ * to this BSD variant. */ #include +#include #include #include #include diff --git a/sys/fs/nfs/nfs_commonsubs.c b/sys/fs/nfs/nfs_commonsubs.c index 950288027d76..78e2fbb72bdb 100644 --- a/sys/fs/nfs/nfs_commonsubs.c +++ b/sys/fs/nfs/nfs_commonsubs.c @@ -43,6 +43,7 @@ #include "opt_inet6.h" #include +#include #include #include diff --git a/sys/fs/nfs/nfs_var.h b/sys/fs/nfs/nfs_var.h index 145cbf984464..2f81905f6c36 100644 --- a/sys/fs/nfs/nfs_var.h +++ b/sys/fs/nfs/nfs_var.h @@ -119,7 +119,6 @@ int nfsrv_delegupdate(struct nfsrv_descript *, nfsquad_t, nfsv4stateid_t *, vnode_t, int, struct ucred *, NFSPROC_T *, int *); int nfsrv_releaselckown(struct nfsstate *, nfsquad_t, NFSPROC_T *); void nfsrv_zapclient(struct nfsclient *, NFSPROC_T *); -int nfssvc_idname(struct nfsd_idargs *); void nfsrv_servertimer(void * __unused); int nfsrv_getclientipaddr(struct nfsrv_descript *, struct nfsclient *); void nfsrv_setupstable(NFSPROC_T *); diff --git a/sys/fs/nfs/nfsid.h b/sys/fs/nfs/nfsid.h new file mode 100644 index 000000000000..bd9807ca1acc --- /dev/null +++ b/sys/fs/nfs/nfsid.h @@ -0,0 +1,67 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Rick Macklem at The University of Guelph. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _NFS_NFSID_H_ +#define _NFS_NFSID_H_ + +/* Definitions for id<-->name mapping. */ +struct nfsd_idargs { + int nid_flag; /* Flags (see below) */ + uid_t nid_uid; /* user/group id */ + gid_t nid_gid; + int nid_usermax; /* Upper bound on user name cache */ + int nid_usertimeout;/* User name timeout (minutes) */ + u_char *nid_name; /* Name */ + int nid_namelen; /* and its length */ + gid_t *nid_grps; /* and the list */ + int nid_ngroup; /* Size of groups list */ +}; + +/* And bits for nid_flag */ +#define NFSID_INITIALIZE 0x0001 +#define NFSID_ADDUID 0x0002 +#define NFSID_DELUID 0x0004 +#define NFSID_ADDUSERNAME 0x0008 +#define NFSID_DELUSERNAME 0x0010 +#define NFSID_ADDGID 0x0020 +#define NFSID_DELGID 0x0040 +#define NFSID_ADDGROUPNAME 0x0080 +#define NFSID_DELGROUPNAME 0x0100 +#define NFSID_SYSSPACE 0x0200 + +#if defined(_KERNEL) || defined(KERNEL) +int nfssvc_idname(struct nfsd_idargs *); +#endif + +#endif /* _NFS_NFSID_H */ diff --git a/usr.sbin/nfsuserd/nfsuserd.c b/usr.sbin/nfsuserd/nfsuserd.c index 058253beaf95..9326dd9018e0 100644 --- a/usr.sbin/nfsuserd/nfsuserd.c +++ b/usr.sbin/nfsuserd/nfsuserd.c @@ -50,6 +50,7 @@ #include #include #include +#include #include #include From nobody Mon Apr 13 02:54:57 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 4fvBpT6zJkz6ZMnL for ; Mon, 13 Apr 2026 02:54:57 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBpT51TKz3nHj for ; Mon, 13 Apr 2026 02:54:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776048897; 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=H4WCpiLvS21ohd/zFX34dR52bcBPvXL4iOj/C09rtC8=; b=Ks9LB2A4gyQRe9ahDe9NEM8HjSKhlQOC0tPDgq1se/g7hMmQ0cnaMohU9S/Q50rAH2wA1u ZTPB3ngBF+8ajOpkF0VJrCX0nGwebUZgJ2pUv5B0AQLOpBwrDLISe+YHGRm0nUFhTnaN4L Bt+WF/3aZQdetCgBClZ1lCAkTlMep7P2+KFX6aQvp1yzD5iggR35pG6ko96zQVzp3K5NLp vbq31yatk/JHLPoSdWx1nwUJGARWxqnnQZ31JPtm8GQZ/1KzU11yK1IDX4+gG2uVUmuM1u oIFbkdqy62gbaStrar83np9kjbBEbrVse54ik5ILwi9+hmuZ6wJpAzlrhyzzaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776048897; a=rsa-sha256; cv=none; b=aHRkulZ3ue0r9VWgyZrFdSMRXI8wtR1+gqyvk3G2hi2+lOzMhbJRfZYwFTJsLy/xA0IA16 ctG4tr+wR/3V5W4ESZ7NfMSnGy3ECkQpEpHKRI0m9rRjqR3YfvkJNpiaVWaLiLX71RYZsj f7eA6zSGjiWSLE4S8RKZ0WcZqdUFhVagml92Wyoa3xAzRYFSbohUFRSbKFst3PatyRAHp3 ZMGmjYEbeTXugGkO5NYT3ir7mFMTO3n0BGBF8A+jmomF6EjpW5pNhWLMIJXrZSpL45AATO hDtsBfghM4eeJVI+F9FRzThdjuRUn70Vi/zm2fs4M+feKwb4CaASSn8xvKUeYw== 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=1776048897; 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=H4WCpiLvS21ohd/zFX34dR52bcBPvXL4iOj/C09rtC8=; b=vhs/k/6qj+S43MUAJ7UzsfskKZhqeRwsQ14u0WzjGkYtK2xiOsjlbOm86ghYeb0nIPK7Se +9iAAQyRUDHkpt+Hg9PzoS7DW5I9ywGp3oM5jTg7B9oA5/6TzIjWdYnZuJj0KHtr98SMjt MQpHn8o0rG4JYwJ0F38EL+9ALkGqOmr/Vhlqo5arO0lR7xiXJr5EPd6xBgpotq3lhS6kXw ybb5kxwWJCAJwH1SlPJafTDqtz+LbjS30XuT7xSH3RscGev3Fvm6ooE/5OC5eiJLg2TsU1 fj0XSKnYPOXlx5R+MPJF8ISdkQlyDaEKT8HSQaVgnxbPp0xRmWnETnPBT/AlvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBpT4XJ2zm5m for ; Mon, 13 Apr 2026 02:54:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 463f7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:54:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 2791bc4219e8 - stable/15 - vm_fault: Avoid creating clean, writeable superpage mappings 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2791bc4219e8e5e99e0160ff398b31436e0f04de Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:54:57 +0000 Message-Id: <69dc5b01.463f7.33b9bf1a@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2791bc4219e8e5e99e0160ff398b31436e0f04de commit 2791bc4219e8e5e99e0160ff398b31436e0f04de Author: Mark Johnston AuthorDate: 2026-03-27 00:25:31 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:05 +0000 vm_fault: Avoid creating clean, writeable superpage mappings The pmap layer requires writeable superpage mappings to be dirty. Otherwise, during demotion, we may miss a hw update of the PDE which sets the dirty bit. When creating a managed superpage mapping without promotion, i.e., with pmap_enter(psind == 1), we must therefore ensure that a writeable mapping is created with the dirty bit pre-set. To that end, vm_fault_soft_fast(), when handling a map entry with write permissions, checks whether all constituent pages are dirty, and if so, converts the fault to a write fault, so that pmap_enter() does the right thing. If one or more pages is not dirty, we simply create a 4K mapping. vm_fault_populate(), which may also create superpage mappings, did not do this, and thus could create mappings which violate the invariant described above. Modify it to instead check whether all constituent pages are already dirty, and if so, convert the fault to a write fault. Otherwise the mapping is downgraded to read-only. Reported by: ashafer Reviewed by: alc, kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D55536 (cherry picked from commit f404109e90eee7f67ddaae3f52286d524a190fa0) --- sys/vm/vm_fault.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index addda72e2b56..2eed9851135a 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -642,6 +642,8 @@ vm_fault_populate(struct faultstate *fs) pager_last = map_last; } for (pidx = pager_first; pidx <= pager_last; pidx += npages) { + bool writeable; + m = vm_page_lookup(fs->first_object, pidx); vaddr = fs->entry->start + IDX_TO_OFF(pidx) - fs->entry->offset; KASSERT(m != NULL && m->pindex == pidx, @@ -652,14 +654,28 @@ vm_fault_populate(struct faultstate *fs) !pmap_ps_enabled(fs->map->pmap))) psind--; + writeable = (fs->prot & VM_PROT_WRITE) != 0; npages = atop(pagesizes[psind]); for (i = 0; i < npages; i++) { vm_fault_populate_check_page(&m[i]); vm_fault_dirty(fs, &m[i]); + + /* + * If this is a writeable superpage mapping, all + * constituent pages and the new mapping should be + * dirty, otherwise the mapping should be read-only. + */ + if (writeable && psind > 0 && + (m[i].oflags & VPO_UNMANAGED) == 0 && + m[i].dirty != VM_PAGE_BITS_ALL) + writeable = false; } + if (psind > 0 && writeable) + fs->fault_type |= VM_PROT_WRITE; VM_OBJECT_WUNLOCK(fs->first_object); - rv = pmap_enter(fs->map->pmap, vaddr, m, fs->prot, fs->fault_type | - (fs->wired ? PMAP_ENTER_WIRED : 0), psind); + rv = pmap_enter(fs->map->pmap, vaddr, m, + fs->prot & ~(writeable ? 0 : VM_PROT_WRITE), + fs->fault_type | (fs->wired ? PMAP_ENTER_WIRED : 0), psind); /* * pmap_enter() may fail for a superpage mapping if additional From nobody Mon Apr 13 02:54:58 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 4fvBpW1WnLz6ZMQW for ; Mon, 13 Apr 2026 02:54:59 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBpV670cz3nKb for ; Mon, 13 Apr 2026 02:54:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776048898; 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=dP7vpKhAocgvUzfh7KNsCCph+TyGVJkJ+nqqKtInQ3c=; b=D1z3rPQaAInsAIHWy40L/NxfFM1jpqur9N4cEQgY/thPI+alE31kLKlzkb9jbdcY+/Uf23 +mhdTADzeOgs91zq/6tYS7pjAhtoMI8LcW0lFKDs85naFsQTdn31XJXAsUl3/TecajBIg/ EDqr0JN4Eh03/vvjGV0J3WkR04gczwzy9ln9E9m8jv6fDdI82kBkmhc8a9/Zjm8cGA1T4c 9JC5koO2T3GrZgkP/SxwHetB358EpFhuStvX5vpVr8JcVV6pUxWJz8WsVEgN0cu3yuo9QB VSrRXlXaif5VvGPeNAYM1G17Ux7LdNcvz1EMBdiEry/JsyLV/eUlVystjZSDRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776048898; a=rsa-sha256; cv=none; b=sYoI1vbHKelZ+oksoTqhcHK5J780lG4jUpIOBrq/2uEVIayh/OI3Wf1WHfpXja5kEdu1y9 qkYghglagjs7M+YWCvzeAKUMgPXXVBAEpAGO1bTiVuWVezQ6W/rN/TQEvx+P5K5D8OL3oJ CtvQHAHKXaoBohIhCZf/6fOKwJLD0IVjaEvD4H387z4pN8xsQxtKXsulU2Wir0PbCy8zVs sp1zR4g4iWreRfNVO2hARcUPIu14ohnG+Q/isDnnWlsmtVmsWArNkGBiVCcbKbYnu0Gvg0 pOwhsUhjvVPquvHUmtaIuduykXCt8TGU3y/Yhy/FdsT6u8BGqAsruNtH08+mPg== 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=1776048898; 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=dP7vpKhAocgvUzfh7KNsCCph+TyGVJkJ+nqqKtInQ3c=; b=dH5s+qYwehv0amCbe5FphN10AAvgpQ4R/lNoHI2mz8vXbMDX+Z4WFn60Jx/eVsp5qHN5ik /2Y0MOphH3eavYjlaitfeizt9L8b1g0rVcZBY1QbZ48XTsXyTXM8xLEZNANLY4WsewKUaX b1oP5nawWD+ruvjMtCVfSK6lLBZtsfFXxoL3SrWJZxJ3ebYqhjZKs5kcabgZu+pJU+y+Gl vMlD6p1SRZeUfFBThGVBxUC/pBcruqTyyw7zbEGSQ5bTWFaH6zEjUGCb0xd1jiNohzbhr7 Yd9rHYBEOt5JDD+YjxigvrNqMrBrf5xrpPse6xQDkuX162nGZfdy+NUjcfiBEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBpV5QXczls3 for ; Mon, 13 Apr 2026 02:54:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46740 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:54:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 84b871567ebe - stable/15 - kqueue: Fix a race when adding an fd-based knote to a queue 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 84b871567ebe264222d96655e4f6f92c73b0996e Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:54:58 +0000 Message-Id: <69dc5b02.46740.65dfb70f@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=84b871567ebe264222d96655e4f6f92c73b0996e commit 84b871567ebe264222d96655e4f6f92c73b0996e Author: Mark Johnston AuthorDate: 2026-03-27 00:24:18 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:06 +0000 kqueue: Fix a race when adding an fd-based knote to a queue When registering a new kevent backed by a file descriptor, we first look up the file description with fget(), then lock the kqueue, then see if a corresponding knote is already registered. If not, and KN_ADD is specified, we add the knote to the kqueue. closefp_impl() interlocks with this process by calling knote_fdclose(), which locks each kqueue and checks to see if the fd is registered with a knote. But, if userspace closes an fd while a different thread is registering it, i.e., after fget() succeeds but before the kqueue is locked, then we may end up with a mismatch in the knote table, where the knote kn_fp field points to a different file description than the knote ident. Fix the problem by double-checking before registering a knote. Add a new fget_noref_unlocked() helper for this purpose. It is a clone of fget_noref(). We could simply use fget_noref(), but I like having an explicit unlocked variant. PR: 293382 Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D55852 (cherry picked from commit 8f3227f527567aef53da845ab78da8e16d9051c1) --- sys/kern/kern_event.c | 14 +++++++++++++- sys/sys/filedesc.h | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 2bb965f3e5e4..3872fb5862c5 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -28,7 +28,6 @@ * SUCH DAMAGE. */ -#include #include "opt_ktrace.h" #include "opt_kqueue.h" @@ -1807,6 +1806,19 @@ findkn: error = ENOMEM; goto done; } + + /* + * Now that the kqueue is locked, make sure the fd + * didn't change out from under us. + */ + if (fops->f_isfd && + fget_noref_unlocked(td->td_proc->p_fd, + kev->ident) != fp) { + KQ_UNLOCK(kq); + tkn = kn; + error = EBADF; + goto done; + } kn->kn_fp = fp; kn->kn_kq = kq; kn->kn_fop = fops; diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 4817855443af..c6499a18b884 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -212,6 +212,8 @@ struct filedesc_to_leader { #ifdef _KERNEL +#include + /* Operation types for kern_dup(). */ enum { FDDUP_NORMAL, /* dup() behavior. */ @@ -303,6 +305,21 @@ int fget_only_user(struct filedesc *fdp, int fd, MPASS(refcount_load(&fp->f_count) > 0); \ }) +/* + * Look up a file description without requiring a lock. In general the result + * may be immediately invalidated after the function returns, the caller must + * handle this. + */ +static inline struct file * +fget_noref_unlocked(struct filedesc *fdp, int fd) +{ + if (__predict_false( + (u_int)fd >= (u_int)atomic_load_int(&fdp->fd_nfiles))) + return (NULL); + + return (atomic_load_ptr(&fdp->fd_ofiles[fd].fde_file)); +} + /* Requires a FILEDESC_{S,X}LOCK held and returns without a ref. */ static __inline struct file * fget_noref(struct filedesc *fdp, int fd) From nobody Mon Apr 13 02:54:56 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 4fvBpZ1Jv8z6ZMnT for ; Mon, 13 Apr 2026 02:55:02 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBpY6tXSz3n1k for ; Mon, 13 Apr 2026 02:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776048902; 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=I9uFKFH65OQsL3VcMhezvxHUERNNv8aDmVA4ORHqoSk=; b=r6DyP17wZnoIYoyBKIGJ3WIVC/NOz4ebjVb93CJNly4llthB+srscDwAl5ZIFAweDFuvJY +eT//Hk7CCPoxDTIpgQBjwAhsdpSXA5EQ1eWDU8XcZ2mEpQhvmiYcjh6GtswA2HdMiPyQi fWLJx9TKHdgMVVbot5Jk8MTN4eFmT50B2HVGzrwTQO628C1YmS6OG/zt7T17tujXHo0buG Rg8jtSsCzELUkM/ZIliV8BjaMqQFFoVnSblmKmfI6xKCXrMOg+N3HOGiu8GQQSOz5Dprol mnnGvZYNKyWYrGntf6QSUCC9GngQuZzm9JuoFL5xrvuFBBK7fuKb8ZOxvzg5AA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776048902; a=rsa-sha256; cv=none; b=rsnqUy4rYaCNeXSHlvKTHZwZnF/tXzO/yekcv+l6Z1JoxmDHo5KNp+/a3WSjQLNZ2pdGFW 2kjWXoB2Q6JCnkOYD9thXasWJPG39PytCfhYGr7Vg+Nj24BYEl7eZjnvh8MxWUfuQuOg2l Q6NDvqHHRUmfFn14P9ci0r8oqzSuxPmXMV7SbgS4U91LkEwd46/z/p0mAqZwIrPCZZ5IwE /ruM6WqMu4LyoGpXFkOv1Q0LdM8KWGRnziRX7yACsbgFrefaerjN3FGBMrU8JPGlf/OrUf pZLp9wSQBQa+uI+P6Kx3BsgGPVCmtu8vUjjhy1xyapTswRpTil8WL8vhR0POwA== 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=1776048902; 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=I9uFKFH65OQsL3VcMhezvxHUERNNv8aDmVA4ORHqoSk=; b=JyOI4jYgG0JKpP8qvD0JJA1ZV2S/J8+s0yH5aZqXIcyVk8NzemL0JJ8rtLlJliU5s2iEm6 ZsUIhLErSC4PrKicSODzKmI5mGjsOjOmAaWjJTD4agT78C43PJap3zGoKbeVqHLigoahMa weLsMg/adt19oaPn04xoeGhb4R2Xec/Y3vXhMi4fktA7QfefHyG9/flqNMpMGSt+kMBD/z BBAykLATfpIibmbcRgagIVrrygSgqYl+m6uFJq4eN/IATnl9JkiBhHy/gu/EzR1p741oml keyw6LUZW0uoxKeSUC5y8sowiZmMLvr6p7COCrCu8VV/taH0KNGbzbQ8ihUg1A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBpY5wtczlvJ for ; Mon, 13 Apr 2026 02:55:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 463f3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:54:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0361497268a5 - stable/15 - rtadvd: Fix validation of the MTU parameter when parsing config 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0361497268a51c565ff335f102690dd8ccad4546 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:54:56 +0000 Message-Id: <69dc5b00.463f3.23255166@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0361497268a51c565ff335f102690dd8ccad4546 commit 0361497268a51c565ff335f102690dd8ccad4546 Author: Mark Johnston AuthorDate: 2026-04-01 12:14:24 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:05 +0000 rtadvd: Fix validation of the MTU parameter when parsing config MFC after: 1 week (cherry picked from commit 607f6be6ec19f49ff595226afe1c8aa6515c59a0) --- usr.sbin/rtadvd/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/rtadvd/config.c b/usr.sbin/rtadvd/config.c index 1b37d53c8b91..628ca3be886f 100644 --- a/usr.sbin/rtadvd/config.c +++ b/usr.sbin/rtadvd/config.c @@ -613,7 +613,7 @@ getconfig_free_pfx: get_prefix(rai); MAYHAVE(val64, "mtu", 0); - if (val < 0 || val64 > 0xffffffff) { + if (val64 < 0 || val64 > 0xffffffff) { syslog(LOG_ERR, "<%s> mtu (%" PRIu64 ") on %s out of range", __func__, val64, ifi->ifi_ifname); From nobody Mon Apr 13 02:56:40 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 4fvBrT3vnSz6ZMyf for ; Mon, 13 Apr 2026 02:56:41 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBrT1S6Xz3pHZ for ; Mon, 13 Apr 2026 02:56:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776049001; 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=C6fXXSswFSxjTyJ66xjFa5iTviYR5opijSJ0nyzIWCo=; b=UmXPzy5w+DG/ZLDuEeno86cfTIyfQ7Pm+RvkEoV36Xk+H1CXFZgC658FVmKr5EfpnzKHEp dONno+hHGIA1OkOrqd4LxJr40XS+BgFxwxgpFA24ctoZtzbEryfomiMYGzCx2oG+Dd6op4 UY6eAvQq77ztcIpEcGU4ews1i6rzZDSbj82mkvCUNQcr+eUpjk5a8afHU1e0CzlX43F5fb SoLAW2zSrMymrvB3vsTOEzMxNGqdNYpem6u3CPu7uj7QTl6YugctOcMPl88fXQ+jSXgVDL fvke8stDPrv1ToTPew6PsYtZz4n8D3cDmI/qSp51K1JQDoXYH+wekrgIiC4tpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776049001; a=rsa-sha256; cv=none; b=BfqXcTil8bmOMyZuUtIwCOqk1QC2rkUJy9dLdTB1ZF+lfpd0S8KshQqdmx7qf8W2qptGEd P4LNxwCetQPC45yBBz1xGT4mWck1KlFOKQdrC+YAb0IJF/mrrn3mTm96vE/l9pAnkgOWtf F9ARWi24n+punPRdY3Lof96YBxs8lvRPniE7JUk9XADxUpqfWQJTxXT9UIBLOypb+KuNUZ mJ113mp0r8cpwGI1FwYkPNBdpoMeuiqeNJNS54CrnFY88vVbubqVNek3ql8/8I+lIdUh8t +tbQONNc6GgiLjLrxsUtIrEBARfQAW2pglu7eSu1b0PLeOJ9UPQ2nDx3PQiAoA== 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=1776049001; 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=C6fXXSswFSxjTyJ66xjFa5iTviYR5opijSJ0nyzIWCo=; b=JTAiRuyOT3BemsvbRwGTVWSpUqX+IoVxqUeOZdaXQgHM/Idq//QO5hR/WTUmJfSsiAV9CX r6pgJBPgG0M9QcwhWYp+yhuTCJZD70Jz2qimcz+uUosyY3/wIHH4k8i1OEF5qdXgjHtWCa Yw8D7AS2d96hYhBxENBjSqS1aHPzQEEt2Al2rWAN6PjP0zrFDJAJ9DxnMoljOkz4sXAJrQ ompmePHn4EBIWgUog27iM0Edlydk9YefzX0SQhY+/IH0XKZtB0jC50cZj8OTLBwzqQMH3d ZjYF+sU62hFhL6OvbrNMzOaCWPq2CHMDLEn1cCVNLVypKuwB4HQK99MrddVjvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBrS71nWzls5 for ; Mon, 13 Apr 2026 02:56:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44ea6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:56:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9b7c0f4f81f0 - stable/14 - vm_fault: Reset m_needs_zeroing properly 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9b7c0f4f81f06424899094d4381dede79669b623 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:56:40 +0000 Message-Id: <69dc5b68.44ea6.274d1173@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9b7c0f4f81f06424899094d4381dede79669b623 commit 9b7c0f4f81f06424899094d4381dede79669b623 Author: Mark Johnston AuthorDate: 2026-04-08 04:21:09 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:32 +0000 vm_fault: Reset m_needs_zeroing properly - When allocating a page, we should only consider the PG_ZERO flag when handling the top-level page. - Unconditionally reset the flag when restarting the fault handler. Previously, vm_fault_busy_sleep() would fail to reset it. PR: 294039 Reviewed by: kib Tested by: Peter Much MFC after: 3 days Fixes: cff67bc43df1 ("vm_fault: only rely on PG_ZERO when the page was newly allocated") Differential Revision: https://reviews.freebsd.org/D56234 (cherry picked from commit 04132e01004316ddd0e0cde6ef15b100b7b1844d) --- sys/vm/vm_fault.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 418f39ac2a2b..87deb993402c 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -272,8 +272,6 @@ vm_fault_might_be_cow(struct faultstate *fs) static void vm_fault_deallocate(struct faultstate *fs) { - - fs->m_needs_zeroing = true; vm_fault_page_release(&fs->m_cow); vm_fault_page_release(&fs->m); vm_object_pip_wakeup(fs->object); @@ -1321,7 +1319,8 @@ vm_fault_allocate(struct faultstate *fs) vm_waitpfault(dset, vm_pfault_oom_wait * hz); return (FAULT_RESTART); } - fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; + if (fs->object == fs->first_object) + fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; fs->oom_started = false; return (FAULT_CONTINUE); @@ -1653,7 +1652,6 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, fs.fault_flags = fault_flags; fs.map = map; fs.lookup_still_valid = false; - fs.m_needs_zeroing = true; fs.oom_started = false; fs.nera = -1; fs.can_read_lock = true; @@ -1662,6 +1660,7 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, RetryFault: fs.fault_type = fault_type; + fs.m_needs_zeroing = true; /* * Find the backing store object and offset into it to begin the From nobody Mon Apr 13 02:56:39 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 4fvBrY3S85z6ZMny for ; Mon, 13 Apr 2026 02:56:45 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBrY1ByLz3pQP for ; Mon, 13 Apr 2026 02:56:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776049005; 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=H+R39vLGNavh42iAeebN+aJKmkAjlznAkSdrd1e01Bc=; b=PDUecgR7Yer+tcx30Hel5X56kevgpUUn4PHaVIRxfO922vrygMLLGu/6ppLCkSPBLtqmkx Ce223duN2z1EMcfFCBVR36sVJVR/2nScELjDHJeMbFDmiZ8ffvnfD0jWTGSa4Mtqzm0SUQ tydpQdQeDi8QlEdbv0yTd3rBcmInq/NB66yTEc6UVGKM769fupjWaQoimsP9QfS7UYH94W GvbJywiPkl0Ou1qQP4+dkBWMkUBKK5qN6ejBk0UZ7UrnHv0MCMus89klNz+zw+7UZIun2i xeDh8keQkVTt+lSfjdewL2mstZA6vbNjLuFbqfoOIrL6WxGDWsKLL+6MdnDJsw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776049005; a=rsa-sha256; cv=none; b=L/2UidGkOgLFmF6T4ZQg5RS4lfqd+WPg5210ZHedaRQaXHL06H98utJUyOt+R+bNFdBHSh 6euxGSUf58ZRihmgHIRjb9AmNLRaF++Oit6r1laYmtC/6FdDZa42wjD5gOPxzWrKWrareC STysmz0IgYonjfWzGd0B2aQOZcI7IC1UXLrdb6qpoho491ZIC4NUFqn3CMxLoKK/KPaOMI kYjyRThwPgPUZbBaJrlkyS8fMZEpIrP47iMUI9EdbzRj1495t5d49Hda7anNiZLbozaYec iX0mUM4pbBYGQWpiaAlUNVkKGqARdbcVzI6sNjUuesKwAah0wU+SIJC5xcbdfg== 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=1776049005; 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=H+R39vLGNavh42iAeebN+aJKmkAjlznAkSdrd1e01Bc=; b=HDLA94g2KjZbJACtnHlCq2+JCgEWQ1sRpTSmDAXK8WwqVnn5m2ZrNRvRe9mT3bUGFS3sK5 1/gx+jnuMilPl59pqlnmjGSzbGxY9lFq8ODhuy0/Bdp9PXe3YdgnrT2gjbz9UeC/GDRWc3 x2Mp2rFZ3HJOHMdWOBvygJYMi4Ne+pzs8qMevg2k990jX67FCkEdW8OXJX+2XkcskusBEU 2mLvNQshxL7XW+8y+xWTLbq2YMNTVbR8QPxpuMCiH8xtNkZfQgOdGV/kbEJfiiql1i5rb1 4cYXHQjhTPKBaOAxQRjrWQVx0A7IrCS3ff8B20x0ZUDCOi4ziTi+bOj8XwMOQQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBrY0Htwzm84 for ; Mon, 13 Apr 2026 02:56:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d44 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:56:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 88535adba95d - stable/14 - kqueue: Fix a race when adding an fd-based knote to a queue 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 88535adba95d019557b4281c52daa9feccade2fe Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:56:39 +0000 Message-Id: <69dc5b67.44d44.27fb06e6@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=88535adba95d019557b4281c52daa9feccade2fe commit 88535adba95d019557b4281c52daa9feccade2fe Author: Mark Johnston AuthorDate: 2026-03-27 00:24:18 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:26 +0000 kqueue: Fix a race when adding an fd-based knote to a queue When registering a new kevent backed by a file descriptor, we first look up the file description with fget(), then lock the kqueue, then see if a corresponding knote is already registered. If not, and KN_ADD is specified, we add the knote to the kqueue. closefp_impl() interlocks with this process by calling knote_fdclose(), which locks each kqueue and checks to see if the fd is registered with a knote. But, if userspace closes an fd while a different thread is registering it, i.e., after fget() succeeds but before the kqueue is locked, then we may end up with a mismatch in the knote table, where the knote kn_fp field points to a different file description than the knote ident. Fix the problem by double-checking before registering a knote. Add a new fget_noref_unlocked() helper for this purpose. It is a clone of fget_noref(). We could simply use fget_noref(), but I like having an explicit unlocked variant. PR: 293382 Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D55852 (cherry picked from commit 8f3227f527567aef53da845ab78da8e16d9051c1) --- sys/kern/kern_event.c | 14 +++++++++++++- sys/sys/filedesc.h | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 920256f8c1bd..df509e7a8492 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -28,7 +28,6 @@ * SUCH DAMAGE. */ -#include #include "opt_ktrace.h" #include "opt_kqueue.h" @@ -1654,6 +1653,19 @@ findkn: error = ENOMEM; goto done; } + + /* + * Now that the kqueue is locked, make sure the fd + * didn't change out from under us. + */ + if (fops->f_isfd && + fget_noref_unlocked(td->td_proc->p_fd, + kev->ident) != fp) { + KQ_UNLOCK(kq); + tkn = kn; + error = EBADF; + goto done; + } kn->kn_fp = fp; kn->kn_kq = kq; kn->kn_fop = fops; diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index 440c5d3d15f9..18077d11150d 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -213,6 +213,8 @@ struct filedesc_to_leader { #ifdef _KERNEL +#include + /* Operation types for kern_dup(). */ enum { FDDUP_NORMAL, /* dup() behavior. */ @@ -303,6 +305,21 @@ int fget_only_user(struct filedesc *fdp, int fd, MPASS(refcount_load(&fp->f_count) > 0); \ }) +/* + * Look up a file description without requiring a lock. In general the result + * may be immediately invalidated after the function returns, the caller must + * handle this. + */ +static inline struct file * +fget_noref_unlocked(struct filedesc *fdp, int fd) +{ + if (__predict_false( + (u_int)fd >= (u_int)atomic_load_int(&fdp->fd_nfiles))) + return (NULL); + + return (atomic_load_ptr(&fdp->fd_ofiles[fd].fde_file)); +} + /* Requires a FILEDESC_{S,X}LOCK held and returns without a ref. */ static __inline struct file * fget_noref(struct filedesc *fdp, int fd) From nobody Mon Apr 13 02:58:41 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 4fvBtp0Zgpz6ZMtV for ; Mon, 13 Apr 2026 02:58:42 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBtn6wD4z3qQ5 for ; Mon, 13 Apr 2026 02:58:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776049122; 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=h8ydgQvVxXdc5UY8VUqw+GDSzENVP0FBZwKMY79Q+AM=; b=OLvDdbf5h7/o4mztlvQCZxiGlo2WRRY0E4Uuz/JmcTj1NmJ1xWpJm0T0B9PvtiVFNfe34L D2X9NVfaUl9HC0l1LtKFDLip9fbIWyqOdMOo1NPRuu/11jzm/GmkWUGCjS4OLjlT+Ffgl9 wyOKQY93+HfsKtLftq5KFunMqEL1D/t4+Rm8qFMGDqGDEy1UB2tJK3tXuzepM5HIM5f6Q8 i9SQ0XwfBLGu/xKqqwIVAG5/aWg4+Gr9eDXLqsKt1b26nodIFiFwgfTUOTbfL+RZiHRNZU PlT006TZH1ttv3CpWGLxcY4kUj2hjwRLNE7YuGUa9RtxbXBWyVdcqdbWHclY2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776049122; a=rsa-sha256; cv=none; b=C20uwe6J8DuV33OtSLTEsiRDXs7QohN+Onqv5nC+4Hqb31CwxB0ZIvZj4Hd9lnjhBpkNjI dNZ23opt+sg6utCizt6nPJQUuRU4/9LsRIsOWzEloRsN7zRvIn80oWj9s0JghgCRbKAL2H u576Z6HHo2Ks31dXpjEUKktmIzsUEW2FPIQwuTxDEyoVeDCtvhwEC8urq3mlPS1Dvdb9gR zIGcaSKcUZwZ+sfsRwKLgjT1JR9jyOPpicZUyREsf6gnp/6qH3VN98IThN0VRlPjbbImoQ wChmL//iSYeBRisNbvyXbMsObzfsND1x5/uAKNPKzv0VcOVKRZyQ5oZdCd0tLA== 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=1776049122; 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=h8ydgQvVxXdc5UY8VUqw+GDSzENVP0FBZwKMY79Q+AM=; b=qkulZdUHchXLwfy4oiLV4G9lMWcFF1i/zkZ7++8t28QHsa0CmCC9o2uRJ8oo6IJNP2RDBf do3U/1Bv+uCobwRl6g+fUGTM6aDkbKRCAyRMDAlMnb91s8r1MxJdgadDt1b3AZqOoCllio e4b/KH7tUE8YiX9O73eBOrGwG8lF7ZWcR39eqGUff2Eb9KCSKU/K85M5NYn6gpBAbRVp9i te6W1tWAi4gYfl3Z/ld2b27rJWZi1fq9hwIq25/LJ19pZuTKXdQEdcNACCHLts23PxzbOG 3jrUrefIQRpEV7xhfXohy+l0C5kjtZjQhmUvkwZKwCTmrQiKTqpRuD8u8UOyUw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBtn65h6zls9 for ; Mon, 13 Apr 2026 02:58:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46633 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:58:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: bb5347cc6f78 - stable/13 - kqueue: Fix a race when adding an fd-based knote to a queue 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: bb5347cc6f78949dab1c631af546aa3fbd87e724 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:58:41 +0000 Message-Id: <69dc5be1.46633.3225eb05@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bb5347cc6f78949dab1c631af546aa3fbd87e724 commit bb5347cc6f78949dab1c631af546aa3fbd87e724 Author: Mark Johnston AuthorDate: 2026-03-27 00:24:18 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:53:41 +0000 kqueue: Fix a race when adding an fd-based knote to a queue When registering a new kevent backed by a file descriptor, we first look up the file description with fget(), then lock the kqueue, then see if a corresponding knote is already registered. If not, and KN_ADD is specified, we add the knote to the kqueue. closefp_impl() interlocks with this process by calling knote_fdclose(), which locks each kqueue and checks to see if the fd is registered with a knote. But, if userspace closes an fd while a different thread is registering it, i.e., after fget() succeeds but before the kqueue is locked, then we may end up with a mismatch in the knote table, where the knote kn_fp field points to a different file description than the knote ident. Fix the problem by double-checking before registering a knote. Add a new fget_noref_unlocked() helper for this purpose. It is a clone of fget_noref(). We could simply use fget_noref(), but I like having an explicit unlocked variant. PR: 293382 Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D55852 (cherry picked from commit 8f3227f527567aef53da845ab78da8e16d9051c1) --- sys/kern/kern_event.c | 14 +++++++++++++- sys/sys/filedesc.h | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 3fb576648fee..850db2d97dfa 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -28,7 +28,6 @@ * SUCH DAMAGE. */ -#include #include "opt_ktrace.h" #include "opt_kqueue.h" @@ -1632,6 +1631,19 @@ findkn: error = ENOMEM; goto done; } + + /* + * Now that the kqueue is locked, make sure the fd + * didn't change out from under us. + */ + if (fops->f_isfd && + fget_noref_unlocked(td->td_proc->p_fd, + kev->ident) != fp) { + KQ_UNLOCK(kq); + tkn = kn; + error = EBADF; + goto done; + } kn->kn_fp = fp; kn->kn_kq = kq; kn->kn_fop = fops; diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index a39716fdce0b..566b0a898307 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -198,6 +198,8 @@ struct filedesc_to_leader { #ifdef _KERNEL +#include + /* Operation types for kern_dup(). */ enum { FDDUP_NORMAL, /* dup() behavior. */ @@ -293,6 +295,21 @@ int fget_only_user(struct filedesc *fdp, int fd, MPASS(refcount_load(&fp->f_count) > 0); \ }) +/* + * Look up a file description without requiring a lock. In general the result + * may be immediately invalidated after the function returns, the caller must + * handle this. + */ +static inline struct file * +fget_noref_unlocked(struct filedesc *fdp, int fd) +{ + if (__predict_false( + (u_int)fd >= (u_int)atomic_load_int(&fdp->fd_nfiles))) + return (NULL); + + return (atomic_load_ptr(&fdp->fd_ofiles[fd].fde_file)); +} + /* Requires a FILEDESC_{S,X}LOCK held and returns without a ref. */ static __inline struct file * fget_locked(struct filedesc *fdp, int fd) From nobody Mon Apr 13 02:58:42 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 4fvBtq2dSNz6ZMwk for ; Mon, 13 Apr 2026 02:58:43 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvBtq06cgz3qXh for ; Mon, 13 Apr 2026 02:58:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776049123; 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=0RFY9YZukwAMTtRJYkRVmadkYcYkyfCoTmL3CEt9YEs=; b=FvF6wRnvW5gcWbAgItaFaSNpfS8uvEKw8yTOaSD5N3XW5qYHNzlh6JyvVmNsRqi13DETu4 srYJpjsm+E3727+custkBq4cLFHHO4mRNybXTcOV0+C9YleIYZy689zzlIMVVebL/BrJKi vQQjyOFnQo5zeXvgUQs7/IUWoMIwDfbjKS0bMv58NUx+LzttWc+PC8cXZIdzFc7L6RCxgp CZUOvZCPn5ugpg7Un4LxJqm7OM7xcAdSh7fdQwVaIE1l7zXKt169JlLS1lH1+bYHlQrkPQ nscxKeJORRJrjLj+MpJ8EkC/d6/OuF8YCyuDHO+gHibmLqq747AE7C3IIdlAcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776049123; a=rsa-sha256; cv=none; b=FPew/Avk0P30S4Dcs80V4iHB2GWv3yDsJx1dwJHjeugRzgSPJcCn8I7X0sfBxKWTbCK+F1 AVDwuLI79TGWugDOCx0ZnxYtAktqp0kUPXyJEPqhHlU/mn1CqYi/uGzHwsybePSsdGKPHG OznYw4/9c3I1NsyZpB1D5Id/LI7+OLPIXmNJh/OPxNaKSxYciMmgj0fymgmjBzCC7N7yDU KPvu2y1S5g3XHyG7hMuCAD31+fC8B5nV45/0TrIx5waKh3tZ+W+oIox4aJ+amKe/mMgpA4 vF7zPTZyf/Vxj1dCApGkxAe04FWWeOp//ZSYlbWPM9KOret5lQULg/H1Vh3jtw== 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=1776049123; 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=0RFY9YZukwAMTtRJYkRVmadkYcYkyfCoTmL3CEt9YEs=; b=r0QaJ5doanTgIuLIbgA3ZuiTi51xsJFj7KSAlZ3cz0jdUKrimB802xSzb/ZyeVqLNp1BCW xeHdU6bfJM5w5vg4YvQriBU9ZdO4SKiDc4A+Pe5XKcyzKBZLM1DoPoezvVrkDBYA6cUtwi yZeY47APwHsVsjZ0VUKBTW9aruNLCI8fMnUsg/h4oIIEfqfmjSI+F0w14nZ3lf3sM9OKSf teLwlG2rNYqaCc+Z0BkB5rb2sk7F8VGpyfO4G5LLnKGFdi/F5E1Cea13Yx/WHbSfy0GP3w 6jbh2L6BMqcojddaYdNzKxOOPqMrZsU92Bi/+awxWBcDejP9aFKQAvYb+TYElw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvBtp6qLWzm8D for ; Mon, 13 Apr 2026 02:58:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46509 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 02:58:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 50f7b62f0862 - stable/13 - vm_fault: Reset m_needs_zeroing properly 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 50f7b62f0862f764215cee98547d5b8c0979ec26 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 02:58:42 +0000 Message-Id: <69dc5be2.46509.31529829@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=50f7b62f0862f764215cee98547d5b8c0979ec26 commit 50f7b62f0862f764215cee98547d5b8c0979ec26 Author: Mark Johnston AuthorDate: 2026-04-08 04:21:09 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 02:58:16 +0000 vm_fault: Reset m_needs_zeroing properly - When allocating a page, we should only consider the PG_ZERO flag when handling the top-level page. - Unconditionally reset the flag when restarting the fault handler. Previously, vm_fault_busy_sleep() would fail to reset it. PR: 294039 Reviewed by: kib Tested by: Peter Much MFC after: 3 days Fixes: cff67bc43df1 ("vm_fault: only rely on PG_ZERO when the page was newly allocated") Differential Revision: https://reviews.freebsd.org/D56234 (cherry picked from commit 04132e01004316ddd0e0cde6ef15b100b7b1844d) --- sys/vm/vm_fault.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 605f677aecd5..614cba69002e 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -242,8 +242,6 @@ unlock_vp(struct faultstate *fs) static void fault_deallocate(struct faultstate *fs) { - - fs->m_needs_zeroing = true; fault_page_release(&fs->m_cow); fault_page_release(&fs->m); vm_object_pip_wakeup(fs->object); @@ -1202,7 +1200,8 @@ vm_fault_allocate(struct faultstate *fs) vm_waitpfault(dset, vm_pfault_oom_wait * hz); return (FAULT_RESTART); } - fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; + if (fs->object == fs->first_object) + fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; fs->oom_started = false; return (FAULT_CONTINUE); @@ -1462,7 +1461,6 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, fs.fault_flags = fault_flags; fs.map = map; fs.lookup_still_valid = false; - fs.m_needs_zeroing = true; fs.oom_started = false; fs.nera = -1; faultcount = 0; @@ -1470,6 +1468,7 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, RetryFault: fs.fault_type = fault_type; + fs.m_needs_zeroing = true; /* * Find the backing store object and offset into it to begin the From nobody Mon Apr 13 04:01:51 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 4fvDHg273nz6YCnc for ; Mon, 13 Apr 2026 04:01:51 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHg1Sg2z3wPd for ; Mon, 13 Apr 2026 04:01:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052911; 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=6890horTUeO+dlW7ppsFWA6tygoq/508SIDnmAbdPe8=; b=iZoZ4BeT/NyB5tH7LTLAybRJxwBuMD0QO525tKOr9DN6XiFwdky+QK04hcc4pSVFwQ3qVA 14T6uIaZQ2AMn0JqOLg3IOLSGZLLnrgN71neRCMegc1VZAOHMTMhr5Tx06L03Os+ho2O3e jxj405XpBNdNkOwN1noXhfZJ9TRcZIDlRSGg06yFxebJQ2fsIjj1wSpm1N1+0QQS6dB6FA 4jShg9+uvZqV5DazY0Vcy/AYORMGFtop+IBR2olvnihnVyCQr/QIiv4iznWm7FH2P4bI7G Ahg4PA79GZdqcMSF1+PrYwt+VJWCuN80HPDkMGSM3w26zoG81LFmgiNx0L/phA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052911; a=rsa-sha256; cv=none; b=OAQ/LewnGmihNjdFUyyEjkWBWhIshF9TSD/Ro9WfpSlGFgRcsvzHH3pfRZkPKi9syFzKE+ ptqwb8V0famVo7KBBgvNCE/ZBxUPI7trMcUEkdpWvbIaFcguSgDKvhkrVe2Mo25pLDeOoL /0UZrzfKQruuSyqz6fyojM1yLBRGKdu8+TDGsynpKZRIvSfBxLyI4h12LCj71sdhSzCjed xvSEV4jgmnDxxNdLo05yKlna5aRwfitTGpmsvu8YLtECGxr3g/noWfZwHCp/QUtSPWWaEq 54OpC1vcOKaBx6w3oq4+G3cxKreHN7xUTQXPbnLtgEXzrgxz4ZIHW86+ApXfmw== 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=1776052911; 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=6890horTUeO+dlW7ppsFWA6tygoq/508SIDnmAbdPe8=; b=YWDPfUS7Wb0YhaYW8ZB1h4MRxGVmGQsf4cpCKoAXLjabCADLn6s4ZSO/sJwG3X5xo5QNja r2YhAVSXdc5z8CgautKjKn07DeXwzANWgGy7J/nQGsDait8UXCQ+NltI8uVAZb13VCiKum KMeCorOntPUS0BBeJKtfxql8QwVDr9Wky8zQnjLdM10e+drxbBiVdhvoq20xNeSya8zbsS OK+CjIKx7BH7ChA/gnJcTVgs9zmV7bp3ePz8YhQzALPigBqW93GDWoe8o0WbUwf8JtwHbv OpORst1Tv14umfcGmEKmjcKMFa+4xw4uniQgbD0bgkVh1eE4HkKchRjpnqjgaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHg13RVznTy for ; Mon, 13 Apr 2026 04:01:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1bfec by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: f30a8cff5171 - stable/15 - kqueue: avoid a possible fork-deadlock 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f30a8cff5171864e7f46d49ca41574606a3d5f1e Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:51 +0000 Message-Id: <69dc6aaf.1bfec.5f779388@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=f30a8cff5171864e7f46d49ca41574606a3d5f1e commit f30a8cff5171864e7f46d49ca41574606a3d5f1e Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:24 +0000 kqueue: avoid a possible fork-deadlock kqueue_fork_copy() is likely to have transitioned at least one knote through a flux state, so we should check whether we need to wake anything up on the way out to avoid a possible deadlock. This was a part of D56210, but we'll close the review with the next commit. Reviewed by: kib, markj (cherry picked from commit 14d0baf2e89202cec3f9cb03a573372ccbc568b2) --- sys/kern/kern_event.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 245a18738d86..2d7df3da58bb 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -3155,7 +3155,7 @@ kqueue_fork_copy(struct filedesc *fdp, struct file *fp, struct file *fp1, } kqueue_release(kq, 1); kq1->kq_forksrc = NULL; - KQ_UNLOCK(kq); + KQ_UNLOCK_FLUX(kq); knote_free(marker); return (error); From nobody Mon Apr 13 04:01:52 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 4fvDHj3WBNz6YCXL for ; Mon, 13 Apr 2026 04:01:53 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHh5bHMz3wMt for ; Mon, 13 Apr 2026 04:01:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052912; 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=UXTlvMPEIbAO/PxrBb9w/XMNk43AR9ut0anRkwrd85w=; b=vin7H3v0lgxdLOEcwm9SjxRmycVgLvtpxv55yhJuThoos7zZbffTpUMNb6f7rs9cBoJJ/J VBnsMgiBMfVcP5KA4xGPYWNqTI/Rfownn5BweAnPoBKepeoCsYLnr0hp//ub4cUL1q7RgM u3EBkWqqM0QNOEAkvlD9X4284WFQs9cO2UNQcJN8wS0/nTfiR6YdfBZ3j1xkkAiU5/WERI KIYKGF3Yj8ZoaE1z7t8vN7sbGgj1zAzAOlBA+VT/ffHPZRgdWN6zgeJNMFkuo1pxgsWKTH Q/Nhewi/cbJDzWT0/+996Gnm7/LKV/5Juw52kZ46e2JLf/mO50OLgXhba3M/Sw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052912; a=rsa-sha256; cv=none; b=m0bsgyiWHqo0mON0Yxkl8gvQxsTAmIwmv2tuKI1pffoYxQHAUARGJY2cIVsV4UIOjP2H1y dv5TLXH8i/SyoisZ/LI0QH5K4OaMQL6mCbvu0qZx0fzWZLrxiwEMiAf0uwCt84h9GfjG24 pznkFUcp477/k9TqcUX/FWSpGRCR2SGWiHr8ViAnG+NnhVfGj+Hh+s9F4xyzSitP7Z7uki OFG9GvE6ZrjyJAXAHNxSlx981NxWWJWvTCQDYw+16SEOTpHpU9ukqe0ydOBO04Rh3kO915 QVmU4fqQqDphwTPRoP2AlxMD/SR3pTsgI8QkBB7NT4Y50q5zNlR9j3GMV79vgw== 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=1776052912; 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=UXTlvMPEIbAO/PxrBb9w/XMNk43AR9ut0anRkwrd85w=; b=s1SUKYXFWJfF901awxYzEdOJr4qtxar8m/LtkJ9q2RotBqmCvItsOjk2KgAY2jofqlGgNJ FJkJuxdKVrSkpjaU79UfhmdmI6SDmb/k/Ai3OMVVMi6W+efFXeRnmTWlLRuEUEH+NYivaW haxDupzdb8w4dlC1zGQu//ntITx4qZ9BCLtw5VlMQivTknl768uZG6jN2oSX7Hbw6RJIWn EXCT1koFNPQPEmeIimV3ZjmbuqxWOAjHBWFBfpY7Glz6m/cdbqwkZ8e3WlocFZuQzRBS63 Q6zFUUrTn8dKkZIQoXJp7LcJw76WhInuSn9tw3K+1nSKBl1sXD5IOD+e9Pnnfg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHh1v6dznmV for ; Mon, 13 Apr 2026 04:01:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e208 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: d02c54533aa4 - stable/15 - kqueue: add some kn_knlist assertions around knlist_(add|remove) 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d02c54533aa49980ad3e8b984d9af4ec835d9adc Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:52 +0000 Message-Id: <69dc6ab0.1e208.9d30c33@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=d02c54533aa49980ad3e8b984d9af4ec835d9adc commit d02c54533aa49980ad3e8b984d9af4ec835d9adc Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:29 +0000 kqueue: add some kn_knlist assertions around knlist_(add|remove) We currently assert that kn_status is accurate, but there's more room for error. Neither of these are very likely, but currently we'd blow up in SLIST*() macros instead of providing more obvious diagnostics. It's perhaps only worth testing these because knlist_remove() requires getting logic across both f_attach() and f_detach() correct. Reviewed by: kib, markj (cherry picked from commit 306c9049c642da6a59a5dc088589605a9aa38b87) --- sys/kern/kern_event.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 2d7df3da58bb..915d34ac1695 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2619,6 +2619,8 @@ knlist_add(struct knlist *knl, struct knote *kn, int islocked) KASSERT(kn_in_flux(kn), ("knote %p not in flux", kn)); KASSERT((kn->kn_status & KN_DETACHED) != 0, ("knote %p was not detached", kn)); + KASSERT(kn->kn_knlist == NULL, + ("knote %p was already on knlist %p", kn, kn->kn_knlist)); if (!islocked) knl->kl_lock(knl->kl_lockarg); SLIST_INSERT_HEAD(&knl->kl_list, kn, kn_selnext); @@ -2641,6 +2643,8 @@ knlist_remove_kq(struct knlist *knl, struct knote *kn, int knlislocked, KASSERT(kqislocked || kn_in_flux(kn), ("knote %p not in flux", kn)); KASSERT((kn->kn_status & KN_DETACHED) == 0, ("knote %p was already detached", kn)); + KASSERT(kn->kn_knlist == knl, + ("knote %p was not on knlist %p", kn, knl)); if (!knlislocked) knl->kl_lock(knl->kl_lockarg); SLIST_REMOVE(&knl->kl_list, kn, knote, kn_selnext); From nobody Mon Apr 13 04:01:53 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 4fvDHj4slDz6YCXQ for ; Mon, 13 Apr 2026 04:01:53 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHj3L14z3w9r for ; Mon, 13 Apr 2026 04:01:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052913; 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=uqrstS+fESvbCeBP5u5f7HpFszKPvYYemnV/r43WxYY=; b=fVFkU4F8/EuAN7NqdbwCcSC0Q99b2P2zExDFUWlrI2QRjlCkzifFBO7BjN/GZOafBkHTL6 09Zqjhga6ujvxnc1OUoum49tcsWQm6r0z8jVcUI7nkSBhN77xawYf0MbaAFbLZm1AqIyGI heXNUZnJzAnsPQ0joMLUSvhwopZPNtmko8MC0Zkus/A6tIiyB7mEU1Te8nXayDclis8TBH T4Un+lGjT12Zi8kHnMcKrpSCpP9WDERAWsQPyo8zJM9UAPFn8TbSiZymcgro1QyyF0w1vF 79nXbgRyvcasn47OWP0ycf0WviIEt8PIanCR85P4xcXWS41geKlyDPRzLtwWvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052913; a=rsa-sha256; cv=none; b=x8trt7LXIGkOiDzpHzbdYd4kK0BgCwZ2pNFBck6JSzE9dMX6ytYC5m1OdEF8FAX63FmDgW rChEe3Asc3Kfz1Ii8RbTtv5tVLn9ug5BeeROf1hBmYws46h2o5PcFDaxLoplVnoiOanYXk 6YumqMMUKduDdX/zQ6RPzJ1HeVPtOmlo/w7w5B3pmYfmk5h1HvgnS78m1rtfD0pZbYDLo3 CESwK6mNVBxPghdjum6+CZAufwKlMPC/pJGbR5Ux1KP0MGrI7I5ZXNZRC2j8lCimAAgBMF /GnmN6Y1bH8fRZzk8VweuW5O7C5YHpW3ZUtfo409MK2p0XrsQdEgP1QXEPZl1g== 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=1776052913; 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=uqrstS+fESvbCeBP5u5f7HpFszKPvYYemnV/r43WxYY=; b=noHxWAafWiakrnqYZCGC8McyFO8UwxxjaPrg8GDUQ1bOSJPfbOSZXZ19n+n01srf7RDLm8 9ICYS6fbsuCxQUH0OthKIqKzUyx1lzsUBWm4y9y4Z8Rk3RAv/2mAb6YTxpOAU3qahy2mMD /1fSQ396YyjwgWGVel99eJATdwk8lhgv+44uKFD/6fr5nzS1LINKdF9+o1tt7R+AZ8YFgI xt8C2zuG89g+QALQiZhbTBY41i387Hc2N8EpZVKNjPIB2knjasYUP1tV0QUda4D5fkAWUf g9EcrLOyTGlrrbiYxtNHOTcEyPaFKODDNfj7hd7cv22GFaA/1ky8AlpBDAPpnA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHj2NgjznV1 for ; Mon, 13 Apr 2026 04:01:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e959 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 94429503486f - stable/15 - kqueue: compare against the size in kqueue_expand 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 94429503486f0738b5670b9a203f48fc2bd5fabf Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:53 +0000 Message-Id: <69dc6ab1.1e959.3738f878@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=94429503486f0738b5670b9a203f48fc2bd5fabf commit 94429503486f0738b5670b9a203f48fc2bd5fabf Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:33 +0000 kqueue: compare against the size in kqueue_expand This is a cosmetic change, rather than a functional one: comparing the knlistsize against the fd requires a little bit of mental gymnastics to confirm that this is fine and not doing unnecessary work in some cases. Notably, one must consider that kq_knlistsize only grows in KQEXTENT chunks, which means that concurrent threads trying to grow the kqueue to consecutive fds will usually not result in the list being replaced twice. One can also more clearly rule out classes of arithmetic problems in the final `else` branch. Reviewed by: kib, markj (cherry picked from commit 0b4f0e0515d0c7ec855cd654ae5dc562f4931cae) --- sys/kern/kern_event.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 915d34ac1695..f3723783146a 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2017,10 +2017,11 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, to_free = NULL; if (fops->f_isfd) { fd = ident; - if (kq->kq_knlistsize <= fd) { - size = kq->kq_knlistsize; - while (size <= fd) + size = atomic_load_int(&kq->kq_knlistsize); + if (size <= fd) { + do { size += KQEXTENT; + } while (size <= fd); list = malloc(size * sizeof(*list), M_KQUEUE, mflag); if (list == NULL) return ENOMEM; @@ -2028,7 +2029,7 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, if ((kq->kq_state & KQ_CLOSING) != 0) { to_free = list; error = EBADF; - } else if (kq->kq_knlistsize > fd) { + } else if (kq->kq_knlistsize >= size) { to_free = list; } else { if (kq->kq_knlist != NULL) { @@ -2043,6 +2044,7 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, kq->kq_knlistsize = size; kq->kq_knlist = list; } + MPASS(error != 0 || kq->kq_knlistsize > fd); KQ_UNLOCK(kq); } } else { From nobody Mon Apr 13 04:01:54 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 4fvDHk5Y79z6YCnd for ; Mon, 13 Apr 2026 04:01:54 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHk3zZHz3w31 for ; Mon, 13 Apr 2026 04:01:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052914; 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=e70k1Rn5Itoq12h/EUzJ/jZCYHxTUZihkR6QrE8SSOc=; b=V2bEJHBwm/m0D9Q0GWQDvWfXWHCcdHJ3gdNjXTX5sr3ojelkysfY0sXWUYdiu/ba5lorzh +tx3yJ8RiaaSzNkCEEKSO38pjQ6QGjaBgyeXeJzSlFdbB44YxjhZafvqnfv4qRy/qPocBN ZBg5l+/dk/32EhHQq4NbueIWqH2Jt432Md9tF8H9sprylevQoefOYy/1USPBcxNNjwlDxg p/OTzfAka7UKv+ypoqyL8Rqn+5QYZRBzbr/Qg1qln872gEdEiQGIFOwDXiao3OKYZLDn1H MpdAc3ZEjabpNHChVD6q6YX3rjM6UdUbgCmU2sFULNQTQ1AO7qpCzV0HmT4g1Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052914; a=rsa-sha256; cv=none; b=NJs5+z92RquuOJQyMgcHDykfcAuehb1x8NUd721G/59cqqKqdWhwadJ2iU658nb6uFT7oN AiF8snpGa+4m7Ena4ufxtQqf6WZxa39UbAsstTsY5g1DhXSy4GWH2x2kuEtL3UT7J3iawF add6slDGXNdqdXIGSwXEBYvrgc12NsUlLaeImwpizMTuG0EsDHsoRtBoMSARtdZ8nmrZCN ZEg0BjDbbY/3bVXdldhTlkK26RY4MMGzyQhC8us/Ne+R7UlxgZ4p3Ij1lZwzAmvYJMWqYt TSNGXG5NF71S7WpUnLus4XQ5Gc5UzNXfBYXF1WW7ZkwrsRGwY1NYGJWDgwFODw== 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=1776052914; 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=e70k1Rn5Itoq12h/EUzJ/jZCYHxTUZihkR6QrE8SSOc=; b=uwaLpn9jVC4J7gxGDghXAcCE3QujkLMLoxGf2o5l+cGZweGkYsfWTMAnqtdaC0ENWbCL+Z qej1MbE0I12l0odNLGhvnXwVTblM3sxQXrBJk1uhDMlFHtJjsB0+3Fy32Awt7SqwenQ6x6 jRxX9JzBpN13/V+wqbE0KeZrYdwbL6FC12VHt8e+D382LkvIxRyBNCDei6yxEqYGLChrvo LAnNhOkw7qs+/n+zX8oCdvDnszc4B5jC3GR/iRryKDEEDprcw5ZSA0adhnZEbi5HsdhycT pOPJ4P+joodWLvwp1XxboQZrRG0YBZ8zR2Lvv2RXsva2SW1jmDqS/2N79mIDRg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHk3CYnznJR for ; Mon, 13 Apr 2026 04:01:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d2d9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 842bee699fe2 - stable/15 - lualoader: allow the local module to filter out the BE list 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 842bee699fe21c46285ba0fe885519a6e3adbd44 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:54 +0000 Message-Id: <69dc6ab2.1d2d9.2b344831@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=842bee699fe21c46285ba0fe885519a6e3adbd44 commit 842bee699fe21c46285ba0fe885519a6e3adbd44 Author: Kyle Evans AuthorDate: 2026-04-08 12:49:18 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:35 +0000 lualoader: allow the local module to filter out the BE list This allows something like the following local.lua to install a filter to implement its own notion of hidden BEs using a naming convention of a leading dot to hide them: -- file: /boot/lua/local.lua local core = require("core") local function be_hide(be) if core.isSingleUserBoot() then -- All BEs are accepted for single-user return true end local name = be:match("/([^/]+)$") if not name then -- Accept malformed BEs, for whatever reason return true end return name:match("^%.") == nil end if core.bootenvFilter then -- Just in case we need to be compatible with older versions of -- core.lua without the filtering functionality. core.bootenvFilter(be_hide) end -- EOF Requested by: Marek Zarychta Reviewed by: imp (cherry picked from commit bf0881060ecd75ce79683b82ebcd4809eadf7cf5) --- stand/lua/core.lua | 20 ++++++++++++++++++-- stand/lua/core.lua.8 | 13 ++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/stand/lua/core.lua b/stand/lua/core.lua index d06f41511a47..c276f61e5904 100644 --- a/stand/lua/core.lua +++ b/stand/lua/core.lua @@ -305,6 +305,15 @@ function core.bootenvDefault() return loader.getenv("zfs_be_active") end +function core.bootenvFilter(func) + local oldf = core.bootenv_filter + + -- Filter contract: returns true if the BE should be kept, false if it + -- should be hidden. + core.bootenv_filter = func + return oldf +end + function core.bootenvList() local bootenv_count = tonumber(loader.getenv(bootenv_list .. "_count")) local bootenvs = {} @@ -332,11 +341,18 @@ function core.bootenvList() for curenv_idx = 0, bootenv_count - 1 do curenv = loader.getenv(bootenv_list .. "[" .. curenv_idx .. "]") if curenv ~= nil and unique[curenv] == nil then - envcount = envcount + 1 - bootenvs[envcount] = curenv unique[curenv] = true + + -- If we have a filter installed (by a local module), we + -- give it a chance to veto the BE. + if not core.bootenv_filter or + core.bootenv_filter(curenv) then + envcount = envcount + 1 + bootenvs[envcount] = curenv + end end end + return bootenvs end diff --git a/stand/lua/core.lua.8 b/stand/lua/core.lua.8 index de43d3e2b220..325320b2fce8 100644 --- a/stand/lua/core.lua.8 +++ b/stand/lua/core.lua.8 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 29, 2025 +.Dd April 8, 2026 .Dt CORE.LUA 8 .Os .Sh NAME @@ -164,6 +164,17 @@ is set in kernels will be autodetected from the current system. .It Fn core.bootenvDefault Returns the default boot environment, nil if unset. +.It Fn core.bootenvFilter func +Installs a filter +.Fa func +into +.Fn core.bootenvList . +If the +.Fa func +returns true, then the boot environment is retained in the list. +Otherwise, the boot environment is hidden. +The old filter, if any, is returned to allow the caller to compose a filter on +top of another filter. .It Fn core.bootenvList Returns a table of boot environments, or an empty table. These will be picked up using the From nobody Mon Apr 13 04:01:55 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 4fvDHm0SGHz6YCc6 for ; Mon, 13 Apr 2026 04:01:56 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHl4d4dz3wBB for ; Mon, 13 Apr 2026 04:01:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052915; 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=e6RNqDItuLSop19LxWMWCYSHNjf7c2Or6nh1/CveEe0=; b=yZz7EgWJ/SNQ27PaSxCCk6qnBgOkuozNfP8/zolG9op+DFAHfBAzfIT96O2/BycSaU4zDE 7LakA6PozXHWiJaxlt9nav2hWviz5Iqr5VHYM2rhrv1c19JONLf8xUHBUXaShvkGz6v5uy ERaAqdL5cxEkHd+LzjpDSoBmPo6rz6TNH+tluFLl8Qb3CibOXSzJN64jhCKpLnmhWtbMgb f2taUbFYSo1ja09cxkLkvT6noHgLKPKS3AIz+goKCzxqTNw194zvjibljGJ9sv5c1l/XN1 QPAFnZlLdOqu0T6opb3iF0iMz77/h92NilvBoeAoDxswbsLDKxCY2HsGuMHqHg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052915; a=rsa-sha256; cv=none; b=J4xVjO5fQ5vmr+TE1ftcov//K40NKpDtLLDihuNFAcpCW/U1SD2+gzdA8Sp3i1zW71nZs1 VhhuKqL9uuzW0Twtm/bJGnp65du8AILOqScXTG2ZA59RqGHkYmw8eL5koGjwGFDvjxQrDs 6cEIwa+MtNsBO2GIEvgLcwdQHA8hLo08p4zS4cJ8DOdR0QcDQvybayVv7idhDALUpQ05Hl VXhm+8IWM5fCJ/gsIszyfXlF70a54XCi/hv8b0nYQO9t+wnYQa6X2TtA8bjGXq7YlMTdlD AMp0jplYu5JhA6qS1KTVzO1p6AlW3huFINd0C1rfCqFVzDPiHeDiyKhFWrU2Bw== 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=1776052915; 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=e6RNqDItuLSop19LxWMWCYSHNjf7c2Or6nh1/CveEe0=; b=F9lde5U4wUJZEx7QlN35FPc+r+EydWSnTWwz7S1I7ImW/RXCAcbPaqaXFdFay+FWaFeOWD RnZdoq1SJVj7rLFOYkbSDHZGaXdZI8HkwuioNfAJqOwRZ1McWXQ+N0VFaz4tP4+Yxd8Q2W ahfMIwf3163itR9cyGE8p08VsqV7JjL2/ypZOpU9a7ugpSkj5gjlocjuxBt1Iq2Cksl0By AOrmQJng7H63ZFgVax87/MX/aT3wAl5lafNiAyDIppA3IVN7D2koqEOevLEzwej7JiGyIB Egk+O5DSpBzsSsMuAbkiDPl3pNMTscF1Bj4UK0dzXhmpsrA85l/enVK3PUCcJA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHl43S1zp1P for ; Mon, 13 Apr 2026 04:01:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e20c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 65e1c27b4bab - stable/15 - kqueue: slightly clarify the flow in knlist_cleardel() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 65e1c27b4bab018926837b6106cb16daafd3a7ac Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:55 +0000 Message-Id: <69dc6ab3.1e20c.1e93a804@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=65e1c27b4bab018926837b6106cb16daafd3a7ac commit 65e1c27b4bab018926837b6106cb16daafd3a7ac Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:40 +0000 kqueue: slightly clarify the flow in knlist_cleardel() This is purely a cosmetic change to make it a little easier on the eyes, rather than jumping back to the else branch up top. Re-flow it to use another loop on the outside and just inline the re-lock before we repeat after awaking from fluxwait. The !killkn path should maybe issue a wakeup if there's a thread in KQ_SLEEP so that userland can observe the EOF, but this isn't a practical problem today: pretty much every case of knlist_clear is tied to a file descriptor and called in the close(2) path. As a consequence, potentially affected knotes are almost always destroyed before we even get to knlist_clear(). Reviewed by: kib, markj (cherry picked from commit c6dd40f2d35d596ca60a5d87616c3e4a0fd4f676) --- sys/kern/kern_event.c | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index f3723783146a..6e16c40a531c 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2788,31 +2788,39 @@ knlist_cleardel(struct knlist *knl, struct thread *td, int islocked, int killkn) KNL_ASSERT_LOCKED(knl); else { KNL_ASSERT_UNLOCKED(knl); -again: /* need to reacquire lock since we have dropped it */ knl->kl_lock(knl->kl_lockarg); } - SLIST_FOREACH_SAFE(kn, &knl->kl_list, kn_selnext, kn2) { - kq = kn->kn_kq; - KQ_LOCK(kq); - if (kn_in_flux(kn)) { - KQ_UNLOCK(kq); - continue; - } - knlist_remove_kq(knl, kn, 1, 1); - if (killkn) { - kn_enter_flux(kn); - KQ_UNLOCK(kq); - knote_drop_detached(kn, td); - } else { - /* Make sure cleared knotes disappear soon */ - kn->kn_flags |= EV_EOF | EV_ONESHOT; - KQ_UNLOCK(kq); + for (;;) { + /* + * Each pass removes as many knotes as we can before dropping + * into FLUXWAIT. Active knotes are simply detached and either + * freed or converted to one-shot, as the attached subject is + * essentially disappearing. + */ + SLIST_FOREACH_SAFE(kn, &knl->kl_list, kn_selnext, kn2) { + kq = kn->kn_kq; + KQ_LOCK(kq); + if (kn_in_flux(kn)) { + KQ_UNLOCK(kq); + continue; + } + knlist_remove_kq(knl, kn, 1, 1); + if (killkn) { + kn_enter_flux(kn); + KQ_UNLOCK(kq); + knote_drop_detached(kn, td); + } else { + /* Make sure cleared knotes disappear soon */ + kn->kn_flags |= EV_EOF | EV_ONESHOT; + KQ_UNLOCK(kq); + } + kq = NULL; } - kq = NULL; - } - if (!SLIST_EMPTY(&knl->kl_list)) { + if (SLIST_EMPTY(&knl->kl_list)) + break; + /* there are still in flux knotes remaining */ kn = SLIST_FIRST(&knl->kl_list); kq = kn->kn_kq; @@ -2822,7 +2830,7 @@ again: /* need to reacquire lock since we have dropped it */ kq->kq_state |= KQ_FLUXWAIT; msleep(kq, &kq->kq_lock, PSOCK | PDROP, "kqkclr", 0); kq = NULL; - goto again; + knl->kl_lock(knl->kl_lockarg); } if (islocked) From nobody Mon Apr 13 04:01:50 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 4fvDHm0SlZz6YCSG for ; Mon, 13 Apr 2026 04:01:56 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHl1f18z3wVk for ; Mon, 13 Apr 2026 04:01:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052915; 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=xDDJn9sxDkQK74xToW+t+7OyJn3ti1IE4+Es2e6d0T8=; b=b9xbJMnoqDK5bZcz38G5p/dUTKV4Lpf1AY7mFYJaflIAsj3YDU1YMpRvPAs4PP8Q8ooVE+ 3HLzZcn0Oqm4lZH/x2NmBo6fbnbbOXID6b24N3gj3ZXI1GqlmjqYyA8/U4kzDzNxUqj2wt 3YdBSfpEFhUrJwUEEdBxCYaUxuVDs9HEPyLxpvkvPecILcHJB1cMVzMRMCuMjUKNhsujIS VVJaDG4+42n5OKmO9aq0s6pUD1SC1+igE/mrh9AfSfFHJq6nOJX2jv2I+saZNDvcETTq9k hdn1exHYIreVe17oRQxd7Z3rBnp78hl+vHrzBpLtn8YJDvm5LFBSpjWKjfeBKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052915; a=rsa-sha256; cv=none; b=pOhYSuryhoUAyPDHkn7M3pZcsNZs42Foo+mObALMNvs4XVI0HeKtoTcgyqkvRld7vuYvvg X25Y3gKQsKW2D7V5pxWqDx25d8Igoewv3FPnKbidjQgY3wg1VKiyWvSNPlZr3YwmB6iHJR 8fPapwLP11hrZmaEjIOt891XRQ2jMyLjsMGPxK+0hTDV9M8C6yeTC9b+YeQ3YOtyjjct1v clZrmVf48W6sS8f0Te6y10mxiFe0bZU1eth18gKpMfTzPGW2G+dLnTwlfN9a2M97LeNtwS 7wDWHQIJmyL7JnTpoLCxrWLq4BrP1Y3nVI4BmGAAFKO9w/WSplqKb0LiDIC++A== 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=1776052915; 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=xDDJn9sxDkQK74xToW+t+7OyJn3ti1IE4+Es2e6d0T8=; b=ptnQcVKThaE+yxM7oABeuOxDN9YouDr0ogIAL8AVw5vwNSjMMyyH2IsBCGHSH55W/K7QeJ O31f1PasW7sBi3p6E8L/RCAdeIcF+aoMN14O3ISuXA1ztCHUFobGtUwLpgwwyL23zodNL3 iLePqmt6A5LHnKJrrk684/emsQj5mwguPwXKPAL8blURGbCylHk0BQ24HbPeSjpezgiDUr Q12mELr9WrpPmlgYyOiEWqofA5RnkklZMjLX6yfQ6DnJ390Rh5p2BgRAhzdtN+ClP4s9Nl +6ZZPbBVDYgG8/pREkA2GFlI7EfkbTraFsrefGFG2IOlcCbdjuzqs+dsBaYmxQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHl0xzTznCR for ; Mon, 13 Apr 2026 04:01:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cfef by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: e6d30726b97a - stable/15 - kqueue: simplify knote_fdclose() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e6d30726b97a449b584cf65447a983d452f9511a Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:50 +0000 Message-Id: <69dc6aae.1cfef.5fe91daf@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=e6d30726b97a449b584cf65447a983d452f9511a commit e6d30726b97a449b584cf65447a983d452f9511a Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:19 +0000 kqueue: simplify knote_fdclose() The influx logic in knote_fdclose() is a little misguided, the resulting wakeup() call should always be redundant: knote_drop_detached() will always issue a wakeup before it returns, so anything waiting on *that* knote that had entered fluxwait should have been woken up then. This is the obvious divergence from the other influx/wakeup pattern in the implementation, which will kn_influx-- and then issue the wakeup after it has processed all of the knotes it can make progress on. While we're here, the kq_knlist cannot shrink, so we can avoid that condition in the loop and avoid potentially excessive wakeups from fluxwait on kqueues that we didn't touch. Reviewed by: kib, markj (cherry picked from commit ff1050d2a366bd288a6ebbf63f98003272513f92) --- sys/kern/kern_event.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 3872fb5862c5..245a18738d86 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2838,7 +2838,6 @@ knote_fdclose(struct thread *td, int fd) struct filedesc *fdp = td->td_proc->p_fd; struct kqueue *kq; struct knote *kn; - int influx; FILEDESC_XLOCK_ASSERT(fdp); @@ -2848,22 +2847,25 @@ knote_fdclose(struct thread *td, int fd) */ TAILQ_FOREACH(kq, &fdp->fd_kqlist, kq_list) { KQ_LOCK(kq); + if (kq->kq_knlistsize <= fd || + SLIST_EMPTY(&kq->kq_knlist[fd])) { + KQ_UNLOCK(kq); + continue; + } -again: - influx = 0; - while (kq->kq_knlistsize > fd && - (kn = SLIST_FIRST(&kq->kq_knlist[fd])) != NULL) { + while ((kn = SLIST_FIRST(&kq->kq_knlist[fd])) != NULL) { if (kn_in_flux(kn)) { - /* someone else might be waiting on our knote */ - if (influx) - wakeup(kq); + /* + * Wait for this knote to stabilize, it could be + * the case that it's in the process of being + * dropped anyways. + */ kq->kq_state |= KQ_FLUXWAIT; msleep(kq, &kq->kq_lock, PSOCK, "kqflxwt", 0); - goto again; + continue; } kn_enter_flux(kn); KQ_UNLOCK(kq); - influx = 1; knote_drop(kn, td); KQ_LOCK(kq); } From nobody Mon Apr 13 04:01:56 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 4fvDHn1SHMz6YCSK for ; Mon, 13 Apr 2026 04:01:57 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHm5Ym0z3w86 for ; Mon, 13 Apr 2026 04:01:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052916; 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=pBI53ygvmPz3aX9YcgEc7ghzRhSL+QcAJoe5KJNEYQk=; b=HO1shigtI3ljSKtivjsl1lQO2X1P0z+uFWQbocFAsbY4NaH896YrzgoNaFPdHFoDoFfqBv uoLcZkfraBAbEBORKeVcIfDAHaQ8QVWIUvsWK97b6f7OJwEfU3OeCLRRP2GgUNrGAorFVX WZdLFX8+8OLOzuZIKsY6HV6QlIxZLJ5FbWES78BLONEDGrmnn7MMZNFSImyMBqv5Pj6dcv Wmk/QYsgmaCXMKDlvK3Luaq9KH4OAe0HrRqnwi8oNQxVyTSD4AC52ExtQ2tMrm5lwMhHKv DOk51Hubj1r9/6XCdslPRlwOKwS89fMMq6GfdQuK3RiN9K9yevNt3VG9B1XbUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052916; a=rsa-sha256; cv=none; b=I4jLvi6TuYUAMpRUzwvy4ACFQCcV1nzi1LDzLSGgOLmxfXR2CahznEbF9zmMmVeYojWqM+ GU1pEsTJxEWGDn4aCDJYviuk5juDzJ0EX/iBROnaP7IvMz3p7gegaDeyxbnjm5/5mjUhGx HByb3QIrCoMnpzuDVpioEVFvdWGCVWZfvVA9TUPOK0xb06GXj519J4i+3nnZuiXmVcVbHx YTAeHuhaILzNLSZZIt+5vA3y/axp3U85fw+TNLCTQ1SodgZCm2I+U/VCVa8ag/KMwdDpPf TP9jRlg+B++AXSFESot5iGlAWK6jVc+l9bJxOQdnfZ4DXYJ8mCyCr7wgNznLxw== 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=1776052916; 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=pBI53ygvmPz3aX9YcgEc7ghzRhSL+QcAJoe5KJNEYQk=; b=FvDWkMDTRLfqHpDs2khc+meBdPB/7dooC3vD+2JlzVfSp4jQWD67YITeKLakKUxajhXbtl 13rrdYo8/wOFTaQFkIzCbye9EyK3SGyg/af530bIQ52U5rzwjjh0vunf3mcRGS0LvmyX5l mCNpQRw3/spBMenRZzY3o7JBfrcPbCI/8ZKGbDl8969T1skhRnpQgoIpP4fRUcc8LMAqsA E3PFKDKAsLK0/x6BiQvul+15vv7rO91konF2GcWAxoaieb0c2ZhTvdqFhH9WwAUgR7h9Mv 5LzMf2bcFkzuQfyod5I/viZTWzsXcs51VLuytPSHWTmat+EJrxNpRbMZTWfZbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHm4wrkzp1Q for ; Mon, 13 Apr 2026 04:01:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e191 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: ac6173b54ffb - stable/15 - libc: fix memfd_create's HUGETLB handling 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ac6173b54ffbad0bc65396b8ce7e5f30fba4e12e Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:56 +0000 Message-Id: <69dc6ab4.1e191.4cbee355@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=ac6173b54ffbad0bc65396b8ce7e5f30fba4e12e commit ac6173b54ffbad0bc65396b8ce7e5f30fba4e12e Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:44 +0000 libc: fix memfd_create's HUGETLB handling The 'simplification' commit referenced below actually broke one aspect of MFD_HUGETLB: the caller isn't supposed to be required to specify a size. MFD_HUGETLB by itself without a shift mask just requests a large page, so we revert that part of memfd_create() back. While we're here, fix up the related parts of the manpages a little bit, since MFD_HUGETLB is actually supported. The manpage claims that we would return ENOSYS if forced mappings weren't supported, but this was actually not true. However, that seems like a very important distinction to make between ENOSYS and EOPNOTSUPP, so fix the implementation to match the docs. Reviewed by: kib, markj (cherry picked from commit 9a8d333368baef356f0a611b47ec592568dd14f9) --- lib/libc/gen/memfd_create.c | 23 +++++++++++++------ lib/libsys/shm_open.2 | 31 ++++++++++++++++++++++---- tests/sys/posixshm/memfd_test.c | 35 +++++++++++++++++++++++++++++ tests/sys/posixshm/posixshm.h | 45 ++++++++++++++++++++++++++++++++++++++ tests/sys/posixshm/posixshm_test.c | 38 +++++++++++--------------------- 5 files changed, 136 insertions(+), 36 deletions(-) diff --git a/lib/libc/gen/memfd_create.c b/lib/libc/gen/memfd_create.c index 78131f46d7b1..8e6c93be4337 100644 --- a/lib/libc/gen/memfd_create.c +++ b/lib/libc/gen/memfd_create.c @@ -95,16 +95,25 @@ memfd_create(const char *name, unsigned int flags) npgs = getpagesizes(pgs, nitems(pgs)); if (npgs == -1) goto clean; - pgsize = (size_t)1 << ((flags & MFD_HUGE_MASK) >> MFD_HUGE_SHIFT); - for (pgidx = 0; pgidx < npgs; pgidx++) { - if (pgsize == pgs[pgidx]) - break; - } - if (pgidx == npgs) { - errno = EOPNOTSUPP; + else if (npgs == 1) { + errno = ENOSYS; goto clean; } + if ((flags & MFD_HUGE_MASK) == 0) { + pgidx = 1; + } else { + pgsize = 1UL << ((flags & MFD_HUGE_MASK) >> MFD_HUGE_SHIFT); + for (pgidx = 1; pgidx < npgs; pgidx++) { + if (pgsize == pgs[pgidx]) + break; + } + if (pgidx == npgs) { + errno = EOPNOTSUPP; + goto clean; + } + } + memset(&slc, 0, sizeof(slc)); slc.psind = pgidx; slc.alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT; diff --git a/lib/libsys/shm_open.2 b/lib/libsys/shm_open.2 index c3196d966e6b..58597a341b9e 100644 --- a/lib/libsys/shm_open.2 +++ b/lib/libsys/shm_open.2 @@ -26,7 +26,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 4, 2025 +.Dd March 26, 2025 .Dt SHM_OPEN 2 .Os .Sh NAME @@ -343,7 +343,25 @@ Allow adding seals to the resulting file descriptor using the .Xr fcntl 2 command. .It Dv MFD_HUGETLB -This flag is currently unsupported. +Create a memfd backed by a +.Dq largepage +object. +One of the +.Dv MFD_HUGE_* +flags defined in +.In sys/mman.h +may be included to specify a fixed size. +If a specific size is not requested, the smallest supported large page size is +selected. +.Pp +The behavior documented above for the +.Fn shm_create_largepage +.Fa psind +argument also applies to largepage objects created by +.Fn memfd_create , +and the +.Dv SHM_LARGEPAGE_ALLOC_DEFAULT +policy will always be used. .El .Sh RETURN VALUES If successful, @@ -458,17 +476,22 @@ argument was too long. .Pp An invalid or unsupported flag was included in .Fa flags . +.It Bq Er EINVAL +A hugetlb mapping was requested, but +.Dv MFD_HUGETLB +was not specified in +.Fa flags . .It Bq Er EMFILE The process has already reached its limit for open file descriptors. .It Bq Er ENFILE The system file table is full. .It Bq Er ENOSYS -In -.Fa memfd_create , .Dv MFD_HUGETLB was specified in .Fa flags , and this system does not support forced hugetlb mappings. +.It Bq Er EOPNOTSUPP +This system does not support the requested hugetlb page size. .El .Pp .Fn shm_open diff --git a/tests/sys/posixshm/memfd_test.c b/tests/sys/posixshm/memfd_test.c index 5cae184206b1..387eca4cafe9 100644 --- a/tests/sys/posixshm/memfd_test.c +++ b/tests/sys/posixshm/memfd_test.c @@ -34,6 +34,8 @@ #include #include +#include "posixshm.h" + ATF_TC_WITHOUT_HEAD(basic); ATF_TC_BODY(basic, tc) { @@ -277,6 +279,38 @@ ATF_TC_BODY(immutable_seals, tc) close(fd); } +ATF_TC_WITHOUT_HEAD(hugetlb); +ATF_TC_BODY(hugetlb, tc) +{ + size_t ps[MAXPAGESIZES], pgsize; + int fd, pscnt; + + pscnt = pagesizes(ps, false); +#define MFD_HUGE_SUPPORTED(sz) (sz <= (1 << 24)) +#define MFD_HUGE_FLAGS(sz) (((ffsl(sz) - 1U) << MFD_HUGE_SHIFT) & MFD_HUGE_MASK) + for (int psidx = 1; psidx < pscnt; psidx++) { + pgsize = ps[psidx]; + + if (!MFD_HUGE_SUPPORTED(pgsize)) + continue; + + ATF_REQUIRE_MSG((fd = memfd_create("...", + MFD_HUGETLB | MFD_HUGE_FLAGS(pgsize))) != -1, + "Creating a %zu-size hugetlb memfd", pgsize); + } + + fd = memfd_create("...", MFD_HUGETLB); + if (pscnt == 1) { + ATF_REQUIRE_MSG(fd == -1, + "Creating an unspecified hugetlb memfd without large page support"); + ATF_REQUIRE(errno == ENOSYS); + } else { + ATF_REQUIRE_MSG(fd != -1, + "Creating an unspecified hugetlb memfd with large page support"); + close(fd); + } +} + ATF_TP_ADD_TCS(tp) { @@ -289,5 +323,6 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, get_seals); ATF_TP_ADD_TC(tp, dup_seals); ATF_TP_ADD_TC(tp, immutable_seals); + ATF_TP_ADD_TC(tp, hugetlb); return (atf_no_error()); } diff --git a/tests/sys/posixshm/posixshm.h b/tests/sys/posixshm/posixshm.h new file mode 100644 index 000000000000..84c73e0d10df --- /dev/null +++ b/tests/sys/posixshm/posixshm.h @@ -0,0 +1,45 @@ +/*- + * + * Copyright (c) 2020 Klara, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include + +static int +pagesizes(size_t ps[MAXPAGESIZES], bool required) +{ + int pscnt; + + pscnt = getpagesizes(ps, MAXPAGESIZES); + ATF_REQUIRE_MSG(pscnt != -1, "getpagesizes failed; errno=%d", errno); + ATF_REQUIRE_MSG(ps[0] != 0, "psind 0 is %zu", ps[0]); + ATF_REQUIRE_MSG(pscnt <= MAXPAGESIZES, "invalid pscnt %d", pscnt); + if (pscnt == 1 && required) + atf_tc_skip("no large page support"); + return (pscnt); +} + diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index 55514a5f4bde..680a443b6eac 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -49,6 +49,8 @@ #include +#include "posixshm.h" + #define TEST_PATH_LEN 256 static char test_path[TEST_PATH_LEN]; static char test_path2[TEST_PATH_LEN]; @@ -1239,20 +1241,6 @@ shm_open_large(int psind, int policy, size_t sz) return (fd); } -static int -pagesizes(size_t ps[MAXPAGESIZES]) -{ - int pscnt; - - pscnt = getpagesizes(ps, MAXPAGESIZES); - ATF_REQUIRE_MSG(pscnt != -1, "getpagesizes failed; errno=%d", errno); - ATF_REQUIRE_MSG(ps[0] != 0, "psind 0 is %zu", ps[0]); - ATF_REQUIRE_MSG(pscnt <= MAXPAGESIZES, "invalid pscnt %d", pscnt); - if (pscnt == 1) - atf_tc_skip("no large page support"); - return (pscnt); -} - ATF_TC_WITHOUT_HEAD(largepage_basic); ATF_TC_BODY(largepage_basic, tc) { @@ -1261,7 +1249,7 @@ ATF_TC_BODY(largepage_basic, tc) size_t ps[MAXPAGESIZES]; int error, fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); zeroes = calloc(1, ps[0]); ATF_REQUIRE(zeroes != NULL); for (int i = 1; i < pscnt; i++) { @@ -1317,7 +1305,7 @@ ATF_TC_BODY(largepage_config, tc) size_t ps[MAXPAGESIZES + 1]; /* silence warnings if MAXPAGESIZES == 1 */ int error, fd; - (void)pagesizes(ps); + (void)pagesizes(ps, true); fd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0); ATF_REQUIRE_MSG(fd >= 0, "shm_open failed; error=%d", errno); @@ -1379,7 +1367,7 @@ ATF_TC_BODY(largepage_mmap, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); @@ -1475,7 +1463,7 @@ ATF_TC_BODY(largepage_munmap, tc) size_t ps[MAXPAGESIZES], ps1; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); ps1 = ps[i - 1]; @@ -1526,7 +1514,7 @@ ATF_TC_BODY(largepage_madvise, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1595,7 +1583,7 @@ ATF_TC_BODY(largepage_mlock, tc) "sysctlbyname(vm.stats.vm.v_user_wire_count) failed; error=%d", errno); - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { if (ps[i] / ps[0] > max_wired - wired) { /* Cannot wire past the limit. */ @@ -1638,7 +1626,7 @@ ATF_TC_BODY(largepage_msync, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1697,7 +1685,7 @@ ATF_TC_BODY(largepage_mprotect, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { /* * Reserve a contiguous region in the address space to avoid @@ -1767,7 +1755,7 @@ ATF_TC_BODY(largepage_minherit, tc) pid_t child; int fd, pscnt, status; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1855,7 +1843,7 @@ ATF_TC_BODY(largepage_pipe, tc) int fd, pfd[2], pscnt, status; pid_t child; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); @@ -1908,7 +1896,7 @@ ATF_TC_BODY(largepage_reopen, tc) size_t ps[MAXPAGESIZES]; int fd, psind; - (void)pagesizes(ps); + (void)pagesizes(ps, true); psind = 1; gen_test_path(); From nobody Mon Apr 13 04:01:57 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 4fvDHp3lHwz6YCXk for ; Mon, 13 Apr 2026 04:01:58 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHn65xWz3wSx for ; Mon, 13 Apr 2026 04:01:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052917; 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=LsucKv5MLwPIIQo0eIDuu3XVG87AwRZSFy9kj095IKY=; b=RWhWIUH80cuankCz33+yRXeJ6xIVOHevM10bT4B9YuwRC3NOqJy75O03HPx49Y/3jLBXSp Oys7dyqw3EI5NiaBwrDvdgPdjyV0yom6mI6QCwCh6K3KpP+pRmrxIOKNOmK88ED/RVBURn QjdW1eD3qxSR1LVU1SjiXPmr1klNY81T0XzCAINVbgkdLBmxz4jnbvw+h/kpUXzqrL6LX+ dqoWWznoCRObQzoes1sFRgmEoscydVIgLZ3eAe06d4O4q54qiU3AHzD9bU6VVI6Y7J9fcd eg+xMX9yj7VLRTay8QrsajMDxFD2yjODtafOBOWxtQOuvQmwMDWSsQKY0jWn2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052917; a=rsa-sha256; cv=none; b=tbdbzpXzd9TTI9fZH7m0kYb9XR80pk1bd6bLhG8BqFuPo3MhI8itdfIScsT6bs/Fjtp79W VipdObEn6kXeDYSzHzFaHBoa9wwlvtTpO1wV+4RrhooHL1EGa8n7ryK8Ro7mEzB1tk7Gbr fG0aPGX5pmElv4I50tLSksYmLEskEcCiHSz+GbrDLHg9Qizn1fyOPDRTnPHKjnUwciJOZC Nq82vX4nIxzZrmnqnb5cQ59KwrsSH25L7QuWrAMy/0gSb2wNW0kr50aKbNKgRR9s9l3sHE s6sC8aIOQzre0VygB7MqnBjUatSNXHTbWusGNC/tgGk+0cfbEClcfuOjLD7G4g== 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=1776052917; 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=LsucKv5MLwPIIQo0eIDuu3XVG87AwRZSFy9kj095IKY=; b=P0hNsveKEjuQzf0pvQfs8r8MCCUkkxexpQweh7LiAStUpkuaGlPOwVy18/zuL7hNkDaRkI EhTsbBjgxXiAj1uaL/chnt3FHuFYlMTi/QK3WcjhSEJjRghXhqjnwYSCuSy85qmrNtGkai MFTlPGJBCJNXCnd0NXHAwxW+TNlXYi3dU7NXLd/sajuAzYvFlns15CkbtS0C7SBNzqhJfs c1JqmHrWlu3yDOSB37/yF5a+1DWII/+HvwUfPeiFRNpk1DCki5YoR2957VOZg+/d3LDrhR dqi1FXgyeYtn7po5fApbKaFi+N81aYsCgxI9v6MWruQtXbinMaURMaIzA7ROog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHn5R2Lznwp for ; Mon, 13 Apr 2026 04:01:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e318 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 60618b0b57dd - stable/15 - kqueue: don't leak file refs on failure to knote_attach() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 60618b0b57ddd49f56e1d1f07e132b765a8f840a Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:57 +0000 Message-Id: <69dc6ab5.1e318.1b660de7@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=60618b0b57ddd49f56e1d1f07e132b765a8f840a commit 60618b0b57ddd49f56e1d1f07e132b765a8f840a Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:52 +0000 kqueue: don't leak file refs on failure to knote_attach() We'll subsequently just knote_free() since the knote is barely constructed, but that bypasses any logic that might release references on owned files/fops. Defer clearing those until the knote actually owns them and update the comment to draw the line more clearly. Reviewed by: kib (cherry picked from commit 0bf4d22c37083170961c31694b90551538901a1c) --- sys/kern/kern_event.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 6e16c40a531c..4db5c6669470 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -1822,12 +1822,6 @@ findkn: kn->kn_fp = fp; kn->kn_kq = kq; kn->kn_fop = fops; - /* - * apply reference counts to knote structure, and - * do not release it at the end of this routine. - */ - fops = NULL; - fp = NULL; kn->kn_sfflags = kev->fflags; kn->kn_sdata = kev->data; @@ -1848,6 +1842,16 @@ findkn: goto done; } + /* + * We transfer ownership of fops/fp to the knote + * structure and avoid releasing them at the end of + * this routine, now that all of the remaining exit + * paths will knote_drop() to release the reference + * counts we held on them above. + */ + fops = NULL; + fp = NULL; + if ((error = kn->kn_fop->f_attach(kn)) != 0) { knote_drop_detached(kn, td); goto done; From nobody Mon Apr 13 04:01:58 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 4fvDHq32ppz6YCs8 for ; Mon, 13 Apr 2026 04:01:59 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvDHq01vnz3wT6 for ; Mon, 13 Apr 2026 04:01:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776052919; 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=rkZOt02LNflDve90R3D+S97JFdwMED5I4QXt90rfx0E=; b=eYX4ndyN1q2A2gKAZe+uWAJHYNEKku78O806WeccOKdZbFsibt7NqTU+UagM3u8Dfa4kkM ZaW/EM/2rFT0jm3OUWSx6rWJFiLwcaUc5Rc6a2xqLTwUhgCzoTx3CvhlODSNwUrEF5jmnp SKIFA79DDqy7veT8ftpdn2ae6o+UW3Q6M7QINphz6Iw10QMD9vQGvhV/xDvpOQcaw0KCoH BDX9JaUK89szTkZbC5ChmJcIow68RhWSftwYtvyIh0tpYdtQCGEX7yfu65TghAGy94keMz Er0Ip9IM98aEGEmXLM8Ej78ry4NIC7mkhrU3H6C9u7gBYfHF6giaw0naNlNfSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776052919; a=rsa-sha256; cv=none; b=ujtCYk/ulgbCyMe4OCMOYk/6yZDsa4f6nTNPl/7viITtf9pCjL7twrBIntSXwZmvVo0JgC 1lm+NidTpXV+1VxUX8sho7qHM1oHgFguQHrXEHhMnVIpsNafWgd/D68QcDCP6P0s/v6aNR 5uiCHuObwUs5Y1mKK0q1cOEK+KOLv1cuGiTUIS+KvHYRNYUOUSYh4uMZt6aQ0nMGSaFjdh ql7kDb1x3zPRxGrIz1jOBI6t3Lvu8+BGQaJR12fSDqvZWaQ3Kw4/++FoQbkCZ6EMO3dyRS D+X3QtCjvLj7ohT+1Nb16BE+lb9XfAPvT918A1KytMQ6K1Q5Tq5y0QFi4r0PdA== 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=1776052919; 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=rkZOt02LNflDve90R3D+S97JFdwMED5I4QXt90rfx0E=; b=rjwLTH6Om/BYBwevdLNjeEqQP3cMAGjsP67dbtQ9pzOLrNou2vVTGqvO9r4/btK+jEr7jN GV2n3htdK1rcEgRpecLgNnQcFg8q0Snn8el7lqwZVaOTdZap6OW+e43/8BoHN6jXMaiKbD f0r5RQm167cSciivmuZmDag5tXtIB9j+zl7NnyuMLYc6aqDqb0SJQaP52Y2zr7b7cZSSXk YErmolaZ+u4UlGWNYEw7HHT7RZa+UxZW+XNUYfBHEoP7uzUXz0evSml9glZoCt8TfvKZHt uKUGwTyybQlDwY7M6OCzFQgIjQh3Ns0bNX5LDKZBMLsuSLXtAdb6zor/QBuzaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvDHp6NJRznmc for ; Mon, 13 Apr 2026 04:01:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19dfb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:01:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 84561bc27cb4 - stable/15 - tests: kqueue: add a basic test for CPONFORK 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 84561bc27cb4830a9d4fa27f6ce32c8042f53185 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:01:58 +0000 Message-Id: <69dc6ab6.19dfb.56963c4@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=84561bc27cb4830a9d4fa27f6ce32c8042f53185 commit 84561bc27cb4830a9d4fa27f6ce32c8042f53185 Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 03:12:55 +0000 tests: kqueue: add a basic test for CPONFORK Just copy over a timer and a write-filter, be sure that we can observe both in the child. Maybe the timer should check for a minimum time passed, but I don't know that we'd be likely to get that wrong. This also adds a negative test with a kqueue that is *not* set for CPONFORK being added to the first one, made readable, and confirming that we don't see a knote for it in the child. Some other improvements to the test noted in the review are planned in the short term, but they're not particularly worth blocking adding this as a basic sanity check. Reviewed by: kib, markj (cherry picked from commit 0c9cec8b66e7033f50059329704515d5222b9ff4) --- tests/sys/kqueue/kqueue_fork.c | 140 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/tests/sys/kqueue/kqueue_fork.c b/tests/sys/kqueue/kqueue_fork.c index e4c0412c1980..6f517a2e0e29 100644 --- a/tests/sys/kqueue/kqueue_fork.c +++ b/tests/sys/kqueue/kqueue_fork.c @@ -27,9 +27,13 @@ */ #include +#include +#include +#include #include #include +#include #include #include @@ -81,9 +85,145 @@ ATF_TC_BODY(shared_table_filt_sig, tc) ATF_REQUIRE_EQ(WEXITSTATUS(status), 0); } +#define TIMER_FORKED 0 +#define TIMER_TIMEOUT 1 + +#define RECV_TIMER 0x01 +#define RECV_VNODE 0x02 +#define RECV_CLOREAD 0x04 +#define RECV_ERROR 0x80 +#define RECV_ALL (RECV_TIMER | RECV_VNODE) + +static int +cponfork_notes_check(int kq, int clofd) +{ + struct kevent ev; + int error, received = 0; + + EV_SET(&ev, TIMER_TIMEOUT, EVFILT_TIMER, + EV_ADD | EV_ENABLE | EV_ONESHOT, NOTE_SECONDS, 4, NULL); + error = kevent(kq, &ev, 1, NULL, 0, NULL); + if (error == -1) + return (RECV_ERROR); + + while ((received & RECV_ALL) != RECV_ALL) { + error = kevent(kq, NULL, 0, &ev, 1, NULL); + if (error < 0) + return (RECV_ERROR); + else if (error == 0) + break; + + switch (ev.filter) { + case EVFILT_TIMER: + if (ev.ident == TIMER_TIMEOUT) + return (received | RECV_ERROR); + + received |= RECV_TIMER; + break; + case EVFILT_VNODE: + received |= RECV_VNODE; + break; + case EVFILT_READ: + if ((int)ev.ident != clofd) + return (received | RECV_ERROR); + received |= RECV_CLOREAD; + break; + } + } + + return (received); +} + +ATF_TC_WITHOUT_HEAD(cponfork_notes); +ATF_TC_BODY(cponfork_notes, tc) +{ + struct kevent ev[3]; + int clofd, dfd, error, kq, pdfd, pmask, status; + pid_t pid; + + kq = kqueuex(KQUEUE_CPONFORK); + ATF_REQUIRE(kq >= 0); + + dfd = open(".", O_DIRECTORY); + ATF_REQUIRE(dfd >= 0); + + clofd = kqueue(); + ATF_REQUIRE(clofd >= 0); + + /* + * Setup an event on clofd that we can trigger to make it readable, + * as we'll want this ready to go when we fork to be sure that if we + * *were* going to receive an event from it, it would have occurred + * before the three-second timer that would normally close out the child + * fires. + */ + EV_SET(&ev[0], 0, EVFILT_USER, EV_ADD | EV_ENABLE, 0, 0, NULL); + error = kevent(clofd, &ev[0], 1, NULL, 0, NULL); + ATF_REQUIRE(error != -1); + + /* + * Every event we setup here we should expect to observe in both the + * child and the parent, with exception to the EVFILT_READ of clofd. We + * except that one to be dropped in the child when the kqueue it's + * attached to goes away, thus its exclusion from the RECV_ALL mask. + */ + EV_SET(&ev[0], dfd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT, + NOTE_WRITE, 0, NULL); + EV_SET(&ev[1], TIMER_FORKED, EVFILT_TIMER, EV_ADD | EV_ENABLE | EV_ONESHOT, + NOTE_SECONDS, 3, NULL); + EV_SET(&ev[2], clofd, EVFILT_READ, EV_ADD | EV_ENABLE | EV_ONESHOT, 0, + 0, NULL); + error = kevent(kq, &ev[0], 3, NULL, 0, NULL); + ATF_REQUIRE(error != -1); + + /* Fire off an event to make clofd readable. */ + EV_SET(&ev[0], 0, EVFILT_USER, 0, NOTE_TRIGGER, 0, NULL); + error = kevent(clofd, &ev[0], 1, NULL, 0, NULL); + + /* + * We're only using pdfork here for the kill-on-exit semantics, in case + * the parent fails to setup some context needed for one of our events + * to fire. + */ + pid = pdfork(&pdfd, 0); + ATF_REQUIRE(pid != -1); + if (pid == 0) { + struct kinfo_file kf = { .kf_structsize = sizeof(kf) }; + + if (fcntl(kq, F_KINFO, &kf) != 0) + _exit(RECV_ERROR); + else if (kf.kf_type != KF_TYPE_KQUEUE) + _exit(RECV_ERROR); + + _exit(cponfork_notes_check(kq, clofd)); + } + + /* Setup anything we need to fire off any of our events above. */ + error = mkdir("canary", 0755); + ATF_REQUIRE(error == 0); + + /* + * We'll simultaneously do the same exercise of polling the kqueue in + * the parent, to demonstrate that forking doesn't "steal" any of the + * knotes from us -- all of the events we've added are one-shot and + * still fire twice (once in parent, once in child). + */ + pmask = cponfork_notes_check(kq, clofd); + ATF_REQUIRE_EQ(pmask, RECV_ALL | RECV_CLOREAD); + + /* Wait for the child to timeout or observe the timer. */ + _Static_assert(RECV_ALL <= UCHAR_MAX, + "Too many events to observe -- switch from waitpid -> waitid"); + error = waitpid(pid, &status, 0); + ATF_REQUIRE(error != -1); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE_EQ(WEXITSTATUS(status), RECV_ALL); +} + ATF_TP_ADD_TCS(tp) { ATF_TP_ADD_TC(tp, shared_table_filt_sig); + ATF_TP_ADD_TC(tp, cponfork_notes); return (atf_no_error()); } From nobody Mon Apr 13 04:39:47 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 4fvF7S10HCz6YG4P for ; Mon, 13 Apr 2026 04:39:48 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvF7R5XJNz438x for ; Mon, 13 Apr 2026 04:39:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776055187; 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=irZa2tS7gFPtViwYTc00zG66V4W+yFfmULZskqL9y5s=; b=RykKHFKuzRcBarBhWliJl2XXpBM/KU8Z5FQYM4slOd4ySASzDmWGqNC+AnKLcwBSLiCQKL 3EV1HNEGYqNxQiRB3BJGg2JDf8JpIxL/LlKUFDr7wV7k9UFlf7Ayl+guYpLUH4LHMOlFKV 3qX6/NCFytiPfLdL+Ow12o9Ox244XkeqHzyHlS9E1l7cB53GMgThIDYrbBdASUaNEAsW8k 0IMWxUZ4V+mO3c+X4p3eo6cxXTCGmrPzlLDIHwnj0iimuaw3oweRiJiNCCOG1CL2mSy6T1 7KfPaGTJ07bswUI4OklT36woFjx0086jU5Xw343tq2pNW6xrxUz2gYphGuZcrg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776055187; a=rsa-sha256; cv=none; b=JtxdnsVGcCloM3tHHOOXqVUeLdOiViPIawRsb5UawpDqOVS8Vq2gRkMtmJwhuoNiEfC83W Yx9rBs4EUYsDRTgL1tTVOrpTRjf9oQaUQmn3GcYTJvediVUTch6EW4mZrrmH5zrIe5m17u +EH9kEXeWcEEJTmvgfSpC2XJrrX/CKYLVdSrxVqyaBKwj5j2kNWILRlQ70Y9l5s+VkuwKH vORBmvXrvkCRp8BDc7iue+LqRVr0gHW+LtfI4k6ynK76l2gMswHHTOt3SXp+LIUyeiXF80 ZUbkiu7mYQ8qH/JU5CrLDED+UEU40pKengQl1Yz3E0QvW/QxyDEm38dPqbMI3w== 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=1776055187; 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=irZa2tS7gFPtViwYTc00zG66V4W+yFfmULZskqL9y5s=; b=JV9Fa4BVYJ08EJszlepQuls+AbVLYEKy4eiZCd5n6VzAA1oeGxwOoXxB661QV8G5Ap2ur+ moSQvMubCic3jY8xtex2csO3NajDD7sDkGbWXVK0pO4oR0uEoohugdkXLsoAxdPJqj6NTh CMcbOtMPJJqBfbqjYAlh1mPIwqGdKL3BJ8oigGw1jhmL7NvHjFRbUWVAuY0q+sOAT8EXfD YIYH2tQ9i8KkQOK/V0azqd3SNck4bpzBUgDGV/aNaxMSL9UtqutJNB6hSXp47E+bO0s3RD fIb+xBovw6qItRqcC15Fk/k/xnk7YnGiNaPgNBoQwSqO+5TCGVWqUqWZzrqW2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvF7R4vzjzptd for ; Mon, 13 Apr 2026 04:39:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21c2b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:39:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Zhenlei Huang Subject: git: 38bd7ef62f31 - main - ifnet: Move SIOCSIFVNET from ifhwioctl() to ifioctl() 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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 38bd7ef62f318f791e232e217855307a9d75efa0 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:39:47 +0000 Message-Id: <69dc7393.21c2b.5635f87@gitrepo.freebsd.org> The branch main has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=38bd7ef62f318f791e232e217855307a9d75efa0 commit 38bd7ef62f318f791e232e217855307a9d75efa0 Author: Zhenlei Huang AuthorDate: 2026-04-13 04:38:44 +0000 Commit: Zhenlei Huang CommitDate: 2026-04-13 04:38:44 +0000 ifnet: Move SIOCSIFVNET from ifhwioctl() to ifioctl() SIOCSIFVNET is not a hardware ioctl. Move it to where it belongs. Where here, rewrite the logic of checking whether we are moving the interface from and to the same vnet or not, since it is obviously not stable to access the interface's vnet, given the current thread may race with other threads those running if_vmove(). MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D55880 --- sys/net/if.c | 44 +++++++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/sys/net/if.c b/sys/net/if.c index 73138716cf46..1d73c55aa69f 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -1191,26 +1191,39 @@ if_vmove(struct ifnet *ifp, struct vnet *new_vnet) * Move an ifnet to or from another child prison/vnet, specified by the jail id. */ static int -if_vmove_loan(struct thread *td, struct ifnet *ifp, char *ifname, int jid) +if_vmove_loan(struct thread *td, char *ifname, int jid) { struct prison *pr; - struct ifnet *difp; + struct ifnet *ifp, *difp; bool found; + MPASS(curthread == td); + MPASS(curvnet == TD_TO_VNET(td)); + + /* + * We check the existence of the interface, and will later try to + * unlink it from the "active" list, so it is sufficient to only + * hold a weak reference to it. + * Be aware that it is unsafe to access any member of it, until it + * is proven to be safe to ( say it was on the "active" list ). + */ + ifp = ifunit(ifname); + if (ifp == NULL) + return (ENXIO); + /* Try to find the prison within our visibility. */ sx_slock(&allprison_lock); pr = prison_find_child(td->td_ucred->cr_prison, jid); sx_sunlock(&allprison_lock); if (pr == NULL) return (ENXIO); - prison_hold_locked(pr); - mtx_unlock(&pr->pr_mtx); - - /* Do not try to move the iface from and to the same prison. */ - if (pr->pr_vnet == ifp->if_vnet) { - prison_free(pr); + /* Do not try to move the iface from and to the same vnet. */ + if (pr->pr_vnet == TD_TO_VNET(td)) { + mtx_unlock(&pr->pr_mtx); return (EEXIST); } + prison_hold_locked(pr); + mtx_unlock(&pr->pr_mtx); /* Make sure the named iface does not exists in the dst. prison/vnet. */ /* XXX Lock interfaces to avoid races. */ @@ -2580,15 +2593,6 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td) error = if_rename(ifp, new_name); break; -#ifdef VIMAGE - case SIOCSIFVNET: - error = priv_check(td, PRIV_NET_SETIFVNET); - if (error) - return (error); - error = if_vmove_loan(td, ifp, ifr->ifr_name, ifr->ifr_jid); - break; -#endif - case SIOCSIFMETRIC: error = priv_check(td, PRIV_NET_SETIFMETRIC); if (error) @@ -2876,6 +2880,12 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) ifr = (struct ifreq *)data; switch (cmd) { #ifdef VIMAGE + case SIOCSIFVNET: + error = priv_check(td, PRIV_NET_SETIFVNET); + if (error == 0) + error = if_vmove_loan(td, ifr->ifr_name, ifr->ifr_jid); + goto out_noref; + case SIOCSIFRVNET: error = priv_check(td, PRIV_NET_SETIFVNET); if (error == 0) From nobody Mon Apr 13 04:39:48 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 4fvF7T1FKkz6YGBV for ; Mon, 13 Apr 2026 04:39:49 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvF7S5wlxz43KT for ; Mon, 13 Apr 2026 04:39:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776055188; 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=xi6JL43Mh7J/OTgcNhAr8NFHNwJ2Kamy203YKwkbAIc=; b=k3TdYhXHgFDYFiCvco/yqDTNXVrXdsvvKMQOSCr3xgH2y6ScNimwrZRjA11u702zcRJvA7 vDIPjYz2/guMVVi4HtCTzILi6nAhQ6YONCpoh4yWzc6YFcidUQeF23q8UBhuUw60kdl3P2 zCRIEwWun81PrVpzEjSWd1QYa6hJNoAgmf3Xr2W6BTwlkY/5Bldp/2xmm3dB+2nKeB+k4R jk7GeCSHPO+jmyIHkKsVSdwzZBXUbPt8/DhctRGhXSc30gh4t1hR+c8dR52JluxbygoSX+ 3knlY+0GqULiNU03kuS/xKU+cbDiLuMq+If3O9/kdQc95oZSdhIkFZAqmVM/4A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776055188; a=rsa-sha256; cv=none; b=b24gCCV2VfWtKnjK2B+0UDW7DjP/en1lAWnkm0o7/X/57pSmovL4xVHTFKXUs0Z1cSJxAd KC0pza8mD7X6IeuFFWaf5c3GbRH/HvP3rkhZm7xJ4s0TqCIPmZ9cThyASFlMkfPDV79b8m b7Y59/Dx3K6dldXpi33JbFuhb7PpxfNuyuznp9tpMbIaSlDjcOwKw6+/iWyKzA1kn4kBLK wA2Zy/sqJGKoEulD0FU+6tO5h6mWXKII9KmHOT2Ag23gqf8t9cfrMe4UnQXqhzyn0SVXFN nPWTdaaHaewp7U1oP6jDg3uuwm+Y2+PDa2cBBR5CBlreIcNL9SmrIKeHua+1xA== 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=1776055188; 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=xi6JL43Mh7J/OTgcNhAr8NFHNwJ2Kamy203YKwkbAIc=; b=cd/P8LJoX25Tu4dMx0Stja0xcxTjb+8d6rHBAC6Y2WBcm/vX4iljexHkIhTgjsa27HPBHb FRhXcQ/9JB3/9w7tqndzAryRQ2NR8jARyzea/tkxkOZwSeup/B1o9iEqFBm3JXv0SraUCE A+44iUMg4xMpXw75FROkUCD+xYokIgn6OZaQ4FFgHiqOjF96p6/7jR3xcFiA1VOYur0CVh jLTn1TbAuAD5jMmEtdqDLkV5tWe72e15Dqz0RsSHg/y43JUXa/cslE56DuZqzPanrStNdV kfowxTKnYI9+HjTbRt94yA4xhrxIVBqAhFPwmQaLKrWMx0fEsMbe2dzdfXLz7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvF7S5GzNzppM for ; Mon, 13 Apr 2026 04:39:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 203c3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:39:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Zhenlei Huang Subject: git: e9fc0c538264 - main - if_clone: Make ifnet_detach_sxlock opaque to consumers 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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e9fc0c538264355bd3fd9120c650078281c2a290 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:39:48 +0000 Message-Id: <69dc7394.203c3.3a41c692@gitrepo.freebsd.org> The branch main has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=e9fc0c538264355bd3fd9120c650078281c2a290 commit e9fc0c538264355bd3fd9120c650078281c2a290 Author: Zhenlei Huang AuthorDate: 2026-04-13 04:38:44 +0000 Commit: Zhenlei Huang CommitDate: 2026-04-13 04:38:44 +0000 if_clone: Make ifnet_detach_sxlock opaque to consumers The change e133271fc1b5e introduced ifnet_detach_sxlock, and change 6d2a10d96fb5 widened its coverage, but there are still consumers, net80211 and tuntap e.g., want it. Instead of sprinkling it everywhere, make it opaque to consumers. Out of tree drivers shall also benefit from this change. Reviewed by: kp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D56298 --- sys/net/if.c | 5 +---- sys/net/if_clone.c | 17 ++++++++++++++++- sys/netlink/route/iface.c | 3 --- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/sys/net/if.c b/sys/net/if.c index 1d73c55aa69f..760ae94e842b 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -2904,11 +2904,8 @@ ifioctl(struct socket *so, u_long cmd, caddr_t data, struct thread *td) case SIOCIFDESTROY: error = priv_check(td, PRIV_NET_IFDESTROY); - if (error == 0) { - sx_xlock(&ifnet_detach_sxlock); + if (error == 0) error = if_clone_destroy(ifr->ifr_name); - sx_xunlock(&ifnet_detach_sxlock); - } goto out_noref; case SIOCIFGCLONERS: diff --git a/sys/net/if_clone.c b/sys/net/if_clone.c index 4bc04130da1e..db3db78c1b76 100644 --- a/sys/net/if_clone.c +++ b/sys/net/if_clone.c @@ -441,6 +441,14 @@ if_clone_destroyif_flags(struct if_clone *ifc, struct ifnet *ifp, uint32_t flags { int err; + /* + * XXXZL: To avoid racing with if_vmove() so that we will have + * stable if_vnet. + * This have a good effect, that is, the destroying of tightly + * coupled cloned interfaces such as epair(4) is serialized, + * although the driver is responsible to take care of that. + */ + sx_assert(&ifnet_detach_sxlock, SA_XLOCKED); /* * Given that the cloned ifnet might be attached to a different * vnet from where its cloner was registered, we have to @@ -467,7 +475,12 @@ if_clone_destroyif_flags(struct if_clone *ifc, struct ifnet *ifp, uint32_t flags int if_clone_destroyif(struct if_clone *ifc, struct ifnet *ifp) { - return (if_clone_destroyif_flags(ifc, ifp, 0)); + int err; + + sx_xlock(&ifnet_detach_sxlock); + err = if_clone_destroyif_flags(ifc, ifp, 0); + sx_xunlock(&ifnet_detach_sxlock); + return (err); } static struct if_clone * @@ -670,9 +683,11 @@ if_clone_detach(struct if_clone *ifc) V_if_cloners_count--; IF_CLONERS_UNLOCK(); + sx_xlock(&ifnet_detach_sxlock); /* destroy all interfaces for this cloner */ while (!LIST_EMPTY(&ifc->ifc_iflist)) if_clone_destroyif_flags(ifc, LIST_FIRST(&ifc->ifc_iflist), IFC_F_FORCE); + sx_xunlock(&ifnet_detach_sxlock); IF_CLONE_REMREF(ifc); } diff --git a/sys/netlink/route/iface.c b/sys/netlink/route/iface.c index 3e30d74a3793..d449e4114f24 100644 --- a/sys/netlink/route/iface.c +++ b/sys/netlink/route/iface.c @@ -556,10 +556,7 @@ rtnl_handle_dellink(struct nlmsghdr *hdr, struct nlpcb *nlp, struct nl_pstate *n } NLP_LOG(LOG_DEBUG3, nlp, "mapped ifindex %u to %s", attrs.ifi_index, if_name(ifp)); - sx_xlock(&ifnet_detach_sxlock); error = if_clone_destroy(if_name(ifp)); - sx_xunlock(&ifnet_detach_sxlock); - NLP_LOG(LOG_DEBUG2, nlp, "deleting interface %s returned %d", if_name(ifp), error); if_rele(ifp); From nobody Mon Apr 13 04:39: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 4fvF7X3KWsz6YFmT for ; Mon, 13 Apr 2026 04:39:52 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvF7X1R3Lz43HP for ; Mon, 13 Apr 2026 04:39:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776055192; 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=ipHD4o1kVaIYViQbVt8h2rJW/sZrCrgHdlyL2E6lMZY=; b=GY9vWMayrb/l48FQIrFxfOf0O7zPKw4v37/LoIE6N5W87DqLPoWmL/mdltzFPSEYlynKpv 1KYfMXvHt2B9nDeWlmhPEqgC9OESCivjTkeqlBuUch6vIzpYlRzTJQ1Rq5ToFpATdocvhu 03erFryE2PXp7dqmMbWedHS1lW58ilBv2AU6wj1gkYWyJiUDHIiKScXpzkeUoCIvPttdkV M1jNbd0bMhkw+c4/yYaoudRkJc6WiCaO60cP08fguua9PChW2dsK8dfR59PacDffiYzuyj rIDqbSAR3vq5CMaer7ThldGY7zxtg7UhRcZeqdd03aVizX2dtBCCx2tqQ+lcFw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776055192; a=rsa-sha256; cv=none; b=cVEFRljte8ggkWT2kBY4ETVZKPFjYh0p1/qI9GUh8D/drxnCsoo5mN9h2GKe9bZ7q954Fd rpfT4F0qQVYib7yogfygRrC280oleBSrtuh8Hgoy4jG7UPi/ffTVm0nFzxasZOlYeZ7mX4 Vs+NcEKB6zlPyd9vv+8GfzoNb4E8dYLrXjqtcO3r2NyMs2zrJ4iaSsoi5rtyrVlrjnL5J3 qzXTTSKN1Pt0Y748BGqmn7t7dfweD4LH7DNLWejokRuvr4I8/WxzG3EseZv64u7sBqqghI QLK598M9QC5Vxak8xZAADB3S/JQpMTHKvTif8AdfXni5gG1qwz1AqrM2Jh1agQ== 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=1776055192; 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=ipHD4o1kVaIYViQbVt8h2rJW/sZrCrgHdlyL2E6lMZY=; b=BrrPaPzdkrtStGUabZPqaVoMdSU8IYTIbnATYrANoXZZHDtIha+iG00szBokyBy2sgUg7j hKbi9RAFVmaRd5IfEp1DQ7xPWpSIYY9ZdIEli1CIOJm54BuvUhksir29FM1uKgMX3cQBhC fG1GakvnGRlCWIJV6EeMl0j4EK05RW59yayxz3uKE8IWVeKb7Mp1yfQYOc7Dl7XNd5qISL nPDc6Kdx2a7ACumFAIDaPyorlhM4Rs4J1OudEK5AySKht6WujQeTNLteJ3kxhfze+tVHJ2 REWXNASOjGNYrI21PS6MxgQWRbtEQeR2iy7OIJ+209lX6xiob6ryJtZCj19VuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvF7W5lHvzpNW for ; Mon, 13 Apr 2026 04:39:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20358 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 04:39:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Zhenlei Huang Subject: git: f1fae67afbb1 - main - ifnet: vnet_if_return(): Avoid unnecessary recursive acquisition of ifnet_detach_sxlock 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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f1fae67afbb13a41d488d0e0ec66b1805925019c Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 04:39:46 +0000 Message-Id: <69dc7392.20358.24e77fa1@gitrepo.freebsd.org> The branch main has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=f1fae67afbb13a41d488d0e0ec66b1805925019c commit f1fae67afbb13a41d488d0e0ec66b1805925019c Author: Zhenlei Huang AuthorDate: 2026-04-13 04:38:43 +0000 Commit: Zhenlei Huang CommitDate: 2026-04-13 04:38:43 +0000 ifnet: vnet_if_return(): Avoid unnecessary recursive acquisition of ifnet_detach_sxlock vnet_if_return() will be invocked by vnet_sysuninit() on vnet destructing, while the lock ifnet_detach_sxlock has been acquired in vnet_destroy() already. With this change the order of locking is more clear. There should be no functional change. Reviewed by: pouria Fixes: 868bf82153e8 if: avoid interface destroy race MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D56288 --- sys/net/if.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/net/if.c b/sys/net/if.c index 519b23750b52..73138716cf46 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -479,6 +479,8 @@ vnet_if_return(const void *unused __unused) i = 0; + /* The lock has already been aquired in vnet_destroy() */ + sx_assert(&ifnet_detach_sxlock, SX_XLOCKED); /* * We need to protect our access to the V_ifnet tailq. Ordinarily we'd * enter NET_EPOCH, but that's not possible, because if_vmove() calls @@ -507,9 +509,7 @@ vnet_if_return(const void *unused __unused) IFNET_WUNLOCK(); for (int j = 0; j < i; j++) { - sx_xlock(&ifnet_detach_sxlock); if_vmove(pending[j], pending[j]->if_home_vnet); - sx_xunlock(&ifnet_detach_sxlock); } free(pending, M_IFNET); From nobody Mon Apr 13 05:03:28 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 4fvFfs69Dfz6YJ12 for ; Mon, 13 Apr 2026 05:03:33 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvFfm5Q61z46VG for ; Mon, 13 Apr 2026 05:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776056608; 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=VHGgdsB3O15pp7jQ56+bKOC0fzCJu0kkZ9f/bTAwB88=; b=aNfYBu+oaZEaYnQbLhAspICAuqUGEIpRUzbYVsgCUVZL+lMq7Y/eymAfUqECp3S+WHbfYW byG/qk1u6qJLprK+v8mHspynWpxwvu1TTqVFHY0cZ8rVR4G99mDmCA+G7yDh94GnHlqnCO YjCORRhllA/H0rZl+Kmyyk+VP5YfbpZvUz4nRyp9JY5j861BT9O8GaxKqiNQNaz1aK05iw 2IWnXAuOKyUD2FbnpCLeLgy8rGQd2tPizq+kaHOHCZMFZzat1nsZEyANXj5DQCUbV10+lK C+qZzx+HuUntjE/is7H3ehmDg4n0X0SwL5hQc0NelegdLSAUHpciYFK0qxJY/w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776056608; a=rsa-sha256; cv=none; b=SpLLkg6+c325xc24NDYBwGKljSlDmg3vt37x/cO/0PD2AMdu2cM6yTm+1z2Vm/W47hxste wnj/vDMIxt44KyGfR3mCDKG2ttRdHFbjuNTmFASMI3YQZ6jPC44jxytnWpe2JtlTxANUuZ t2M5Il7KxPN0hYuWb0IQwvqclvG6t5yKX0Vd92LYZ9pqIkCUDZFQ32RlBpJk+vM9Um1PY4 9EUmHhdUUCLsrwscKE2DGizu9lMKvtFu2R8Z9G7OFJK/ddHJXxCSW4dwiZm4kdb9YzzFOp Fy6CvJlVHde4cuZAipUV1RvIsINEiQqlzsYihcIHto4iCmeq5f5UnuMOtVyU7g== 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=1776056608; 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=VHGgdsB3O15pp7jQ56+bKOC0fzCJu0kkZ9f/bTAwB88=; b=cVODiIO1dx5jkq1HLboUoVPTVXaxhoUSem3M8wvqOqTkAI68se4E54FgoCmn0R/j6FVOQB GNCJDAbquM4towFeZ0N90uD/p958QILQHAkN9DcfxBKlBPVGDj2fpuF75oE0yZ3JkjcWfu +IZlxP/v+LuBXqdIBwilXqwOALszKf2jsAzqlmuurszYndsWsk7LF/L30mPBvvW4kPXP4D U+4v/5l3GE7CTMc5ldDRVwuObsz9RMSI82HsJEZzIZkX2Ayf8OFJaHx4HFuUvprftFGv60 NFW4/D8QqnQO4GmIDLmj/VmNG3SE9rpes62x7teTgya8gKrPXRv1Bxv/i33zjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvFfm4qQ7zqXg for ; Mon, 13 Apr 2026 05:03:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2459c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 05:03:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: 0ccb63941591 - stable/14 - cross-build: Define __*int*_t and include sys/cdefs.h 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0ccb63941591d8b9ec77b95d3a4dff11c784e2ad Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 05:03:28 +0000 Message-Id: <69dc7920.2459c.398042ae@gitrepo.freebsd.org> The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=0ccb63941591d8b9ec77b95d3a4dff11c784e2ad commit 0ccb63941591d8b9ec77b95d3a4dff11c784e2ad Author: Warner Losh AuthorDate: 2024-05-26 17:39:18 +0000 Commit: Warner Losh CommitDate: 2026-04-13 05:02:27 +0000 cross-build: Define __*int*_t and include sys/cdefs.h FreeBSD assumes that sys/types.h includes sys/cdefs.h, so add it here. FreeBSD also needs __*int*_t defined for software we bootstrap (a lot of it). GLIBC defines these, but musl does not, so we have to define them here, even though it looks backwards. There's no good #define to key off of, so use !defined GLIBC since on Linux defacto there's only two libc implementations. Co-authored-by: Val Packett Sponsored by: Netflix Pull Request: https://github.com/freebsd/freebsd-src/pull/1066 Reviewed by: val_packett.cool Differential Revision: https://reviews.freebsd.org/D45354 (cherry picked from commit 3c5f0da5106bee21ab3726f608b5c377da92a733) --- tools/build/cross-build/include/linux/sys/types.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tools/build/cross-build/include/linux/sys/types.h b/tools/build/cross-build/include/linux/sys/types.h index 770b3057f8a8..d13e19f9b9b5 100644 --- a/tools/build/cross-build/include/linux/sys/types.h +++ b/tools/build/cross-build/include/linux/sys/types.h @@ -35,6 +35,27 @@ */ #pragma once +#include /* FreeBSD source assumes sys/types.h includes this */ +/* + * MUSL doesn't define the __intXX_t that FreeBSD does, but many of our headers + * assume that will always be present. Define them here. We assume !defined + * __GLIBC__ is musl since musl doesn't have a define to key off of. Thesee + * typedefs look backwards, but it's not circular because MUSL never defines the + * __*int*_t. Also, we don't have to work in the kernel, so it's OK to include + * stdint.h here. + */ +#ifndef __GLIBC__ +#include +typedef int64_t __int64_t; +typedef int32_t __int32_t; +typedef int16_t __int16_t; +typedef int8_t __int8_t; +typedef uint64_t __uint64_t; +typedef uint32_t __uint32_t; +typedef uint16_t __uint16_t; +typedef uint8_t __uint8_t; +#endif + #include_next #ifndef __size_t From nobody Mon Apr 13 10:23:50 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 4fvNmW735kz6Yxd6 for ; Mon, 13 Apr 2026 10:23:55 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvNmW6PmRz3N24 for ; Mon, 13 Apr 2026 10:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776075835; 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=ktntF6MgHIml8Tg39hutzO919XzdhpvzP7PeYUaZ/rI=; b=KOzOA8rWedxUEW8RUuZYGxm2k/OdNCCu97Su/2TLBY/jaAQQlHaAR+SocYZFVutNEUuYMZ bmiIgJHy14Zre1oYtpizxcp7sfLCcLkAGYWhdrsXJdrp9Ra+jcp0kPAIP4Zq7jMORzUKV6 AmHU7uTfDnKF7wCwRvG1R2hPOo8SbM+A4BrRjMKTpwxoeQpHoSVONJG32LnOUOkUwc1t3P UTTg5ATnTWivfj1IzJTmXmOlsLujWifJSUjm/RO0C+YDOGsONaXCzMiOgOvWbbtGLO2WCM OZHIUM9iC8WslOu37ncBP3WuPI6FH8lTU+Qm202UvHi0PWVdh5AwJWGEV5yaBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776075835; a=rsa-sha256; cv=none; b=veHmfd/77ZMamDig4aJYhQUMWXVAaEo0ri8FlFML2iMsCSuTAQ6vIik1MgpBqP6Z4h+j9D hCuSN+WTKTnPe/fvUJeR1WI6J14bdAGLd1EnUuG/FlQxt4c0ARekrkv1B8FMLWsC4z9s0+ PeOOzqf201urt19rGHUyFEbZ2Xq8d2shTwga4NMpu0xk8JFhF5kPsspqxBS/LUS9y2jMry nwZaepe4YBIKnsQfc6bwWbxnwcm5AspRRv65ELdtgEBNhmc/sdBuoEjm1/0iL6QonzHhnO jH57PA6rR4FsZ4u6w+cMp0jSoIjg10s4p2Hehta8ZgKHsTMVxwIQOJO6nKuGHw== 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=1776075835; 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=ktntF6MgHIml8Tg39hutzO919XzdhpvzP7PeYUaZ/rI=; b=Z52dcvYu+rMT8rMHL+nqBQz9UxaWn1Fxm+OsI9Kbjr7vQMo3STI+AQ+wrqiU+utCrwLG3U kHfs30P1JUgDfRS60EF3crcFDvCQ1YKDh9DR+ZO/U4WGg3UCbTA3XU3KrwZG5zREFXXQ63 CzyY8Ws7gXGvSk0qqgEmGgdc5HKIU4VW/jvryUDNUR8igeHofSE+hE0W88V3o3hD+ara06 a+GuwetbMBJNwFFgEsTIHa2R7RSXHQ1JKGZXoF/oXEbLc2Fv1Zr2TDHhJ/YEyGy2BVbP7b tdKDK4oKf9n1acoT0KgQJoMZT1vqZJTYB1T72j7/CyL8ay0LbJMA8FxiCiS2wQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvNmW614Kz10lf for ; Mon, 13 Apr 2026 10:23:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26d8a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 10:23:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Li-Wen Hsu Subject: git: ae1a2033dc25 - stable/15 - installer: Add download.freebsd.org to mirror list 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: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ae1a2033dc254d3f89f223819d23767d8e120def Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 10:23:50 +0000 Message-Id: <69dcc436.26d8a.2407b3ad@gitrepo.freebsd.org> The branch stable/15 has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=ae1a2033dc254d3f89f223819d23767d8e120def commit ae1a2033dc254d3f89f223819d23767d8e120def Author: Li-Wen Hsu AuthorDate: 2026-04-09 04:06:19 +0000 Commit: Li-Wen Hsu CommitDate: 2026-04-13 10:23:35 +0000 installer: Add download.freebsd.org to mirror list download.freebsd.org is backed by project mirrors and a CDN, which should benefit most users. Sponsored by: The FreeBSD Foundation Reviewed by: delphij (releng) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D54849 (cherry picked from commit 45079cdf8b517adf803db7dc7aa85e5728cfeb2f) --- usr.sbin/bsdinstall/scripts/mirrorselect | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bsdinstall/scripts/mirrorselect b/usr.sbin/bsdinstall/scripts/mirrorselect index 05eff9fee56e..708d1b7487eb 100755 --- a/usr.sbin/bsdinstall/scripts/mirrorselect +++ b/usr.sbin/bsdinstall/scripts/mirrorselect @@ -40,6 +40,7 @@ MIRROR=`bsddialog --backtitle "$OSNAME Installer" \ --title "Mirror Selection" --extra-button --extra-label "Other" \ --menu "Please select the best suitable site for you or \"other\" if you want to specify a different choice. The \"Main Site\" directs users to the nearest project managed mirror via GeoDNS (they carry the full range of possible distributions and support both IPv4 and IPv6). All other sites are known as \"Community Mirrors\"; not every site listed here carries more than the base distribution kits. Select a site!" \ 0 0 16 \ + http://download.freebsd.org "Main Site (GeoDNS, CDN, HTTP)"\ http://ftp.freebsd.org "Main Site (GeoDNS, HTTP)"\ ftp://ftp.freebsd.org "Main Site (GeoDNS, FTP)"\ http://ftp.au.freebsd.org "Australia - IPv6"\ @@ -103,7 +104,17 @@ case ${_UNAME_R} in ;; esac -BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD/${RELDIR}/`uname -m`/`uname -p`/${_UNAME_R}" +case ${MIRROR} in + *ftp*) + BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD" + ;; + *) + BSDINSTALL_DISTSITE="$MIRROR" + ;; + +esac + +BSDINSTALL_DISTSITE="${BSDINSTALL_DISTSITE}/${RELDIR}/`uname -m`/`uname -p`/${_UNAME_R}" case $MIRROR_BUTTON in $BSDDIALOG_ERROR | $BSDDIALOG_CANCEL | $BSDDIALOG_ESC) From nobody Mon Apr 13 10:24:21 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 4fvNn21bwSz6Yxrs for ; Mon, 13 Apr 2026 10:24:22 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvNn16wvmz3N0m for ; Mon, 13 Apr 2026 10:24:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776075862; 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=I0pHQIe2L/kjhzH3ZZz3A7NHq/i7wJgiWof+6tCBj88=; b=gxVJgEsJhyHfzk/q7HZ76QAALlugdHiHLiy6MxV5bkFTOxZqvW1Z4zghDUnN60KqWROjI2 +6zWMHiLLiGUh9MU/rIIETKM0Q5YuMHE72wgVSNyKXLN4+d7yyl7gpDpn2V7DajN0dw66T LniK20hXH4f9leD6hSvgYDZrepHiBWxvjSdqwBCaz+GDdZ+hxmGpEAjCdrJESAcDRWoUC9 YPjPxJYdaMmU+Zz3RqytoKyFrNSwPKCrzrosHaRV7zOo5kfNXfpXqixQzMyiW4HcEhbMOp WxKjlZWC8l7gcH7gwSPNGDLtQ6dDXuvYjxuMvs3XZZhw98ZlcyrP8BJbeKUsAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776075862; a=rsa-sha256; cv=none; b=LSxSYxbydT+Q1f77DaZOTBOd8kKoZpmgZoB1XqjOG3I422n1egXnneOnZZImHTJtFG0qEm LTAw0W2wSYjQiltnrMZChlWbG6I8RuamEIZwOtAxKQeOSGUmWYBn8mUwViRHtBB3JRjC6a ff4/1e+wj3KoUMBNqjg24u5rwbylQtRvW26I2mT2X0qA749Cvb0REg10WWm6Aa60rmmxBX zbds8MZtD7okxuZbDkSJd9kDixLa5MbVxr8IOXTLywclZNUz/XTCAz/CDq66p8E89Fvad1 YvWdbLNwJu8eafE2IbZ+FNC3PU5KskDm1u1rNa5YbmIgsDsIzzZo6OoqQYlQ/A== 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=1776075862; 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=I0pHQIe2L/kjhzH3ZZz3A7NHq/i7wJgiWof+6tCBj88=; b=wHq8VQdJ5KCeGIfbqQgCd2Vh4XdJ0t/AOaimi5rX0N0ORglyjVwaC8zq3cvhm+HBKVCrok 6Gu7hci1pIqrFEm6bgX5EyiJdhB81lcOlGc1m0QDU07smlpCzijxv8SdkhHhvHmExohaO9 GLAXe7GLSbMpzz1d+eBwpQPW91yF1Uda0KPTsl51Exlmm4Z4zhGWWxPLF5adKSveV5LG6H +GzJmEBbahA4Da2aXkT+sFkW2aQBtgFXnYSMkE6DByG24ruehQi9Hp+XDdkL4tOdYmYQAd SkOLABn+hRQIpKhMyU/mkZ4fgcHJNidsowDA0OqxovLhf1GcMSS7J7RLR3msYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvNn16WJlz10fS for ; Mon, 13 Apr 2026 10:24:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25eb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 10:24:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Li-Wen Hsu Subject: git: aaa210987afa - stable/14 - installer: Add download.freebsd.org to mirror list 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: lwhsu X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: aaa210987afad8e575088f608a0b85f98186602b Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 10:24:21 +0000 Message-Id: <69dcc455.25eb4.32fc314@gitrepo.freebsd.org> The branch stable/14 has been updated by lwhsu: URL: https://cgit.FreeBSD.org/src/commit/?id=aaa210987afad8e575088f608a0b85f98186602b commit aaa210987afad8e575088f608a0b85f98186602b Author: Li-Wen Hsu AuthorDate: 2026-04-09 04:06:19 +0000 Commit: Li-Wen Hsu CommitDate: 2026-04-13 10:24:13 +0000 installer: Add download.freebsd.org to mirror list download.freebsd.org is backed by project mirrors and a CDN, which should benefit most users. Sponsored by: The FreeBSD Foundation Reviewed by: delphij (releng) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D54849 (cherry picked from commit 45079cdf8b517adf803db7dc7aa85e5728cfeb2f) --- usr.sbin/bsdinstall/scripts/mirrorselect | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bsdinstall/scripts/mirrorselect b/usr.sbin/bsdinstall/scripts/mirrorselect index 1ffbf1512ee2..fa6ef41330f8 100755 --- a/usr.sbin/bsdinstall/scripts/mirrorselect +++ b/usr.sbin/bsdinstall/scripts/mirrorselect @@ -40,6 +40,7 @@ MIRROR=`bsddialog --backtitle "$OSNAME Installer" \ --title "Mirror Selection" --extra-button --extra-label "Other" \ --menu "Please select the best suitable site for you or \"other\" if you want to specify a different choice. The \"Main Site\" directs users to the nearest project managed mirror via GeoDNS (they carry the full range of possible distributions and support both IPv4 and IPv6). All other sites are known as \"Community Mirrors\"; not every site listed here carries more than the base distribution kits. Select a site!" \ 0 0 16 \ + http://download.freebsd.org "Main Site (GeoDNS, CDN, HTTP)"\ http://ftp.freebsd.org "Main Site (GeoDNS, HTTP)"\ ftp://ftp.freebsd.org "Main Site (GeoDNS, FTP)"\ http://ftp.au.freebsd.org "Australia - IPv6"\ @@ -105,7 +106,17 @@ case ${_UNAME_R} in ;; esac -BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD/${RELDIR}/`uname -m`/`uname -p`/${_UNAME_R}" +case ${MIRROR} in + *ftp*) + BSDINSTALL_DISTSITE="$MIRROR/pub/FreeBSD" + ;; + *) + BSDINSTALL_DISTSITE="$MIRROR" + ;; + +esac + +BSDINSTALL_DISTSITE="${BSDINSTALL_DISTSITE}/${RELDIR}/`uname -m`/`uname -p`/${_UNAME_R}" case $MIRROR_BUTTON in $BSDDIALOG_ERROR | $BSDDIALOG_CANCEL | $BSDDIALOG_ESC) From nobody Mon Apr 13 10:57:44 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 4fvPWf1xF5z6Z0Rv for ; Mon, 13 Apr 2026 10:57:50 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvPWf07h7z3R4Y for ; Mon, 13 Apr 2026 10:57:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776077870; 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=FWQdH7Ewgr9iPlDOHfqGronLLIBepDy+HoPImr6TIrs=; b=LOayzYNKu6fvY7vuTfDyXxrdvI9yxa+MrveGuyut1ZR1IdR9R/vWVrBY5ETolUPEjN3qc3 mxjoLBsDcpL5bCFCSOXsUWlp9PY3vToWaYDv8q0/2hDXJPaEWCWkxGJInkhvTI5toY+/r7 py8IA+Kpwd0nISLsH0Q4sROqF385mgpHqhuAJeiSIEXecUUlsBuSA9iPAp0lDu7MtHfdDP e3D1gq60g0GhAiSxBAqBkRCS9pLjx2eFDSOpgvtXbXQqpit1zD/f+KXp0xXSffd1KS+CjQ DCOK7s1VfasjRC64VgoygGE3s921OkHshcx+rytYgc2sHYSMtghhSZQPru99fw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776077870; a=rsa-sha256; cv=none; b=V4IqVlTaKf2o3r816Tj3Rbscjv1I8TDO0rEDk5445P/FEFNIrkmIYd0u8U9i97rfueYmE7 ShNH5YkApnh9f3Ba6pSeCwi6e29HK8HdOkIeneSl/HLKN1VRr/f+PZHX7MJj9I0UbszTtq KCQwmBqlDSucMJM2+9VedG/206VAPHe3pQ4okx3zOR6PLxcJc6X0NGAcfrx40G34/Y2iAI mCEot2MZ4ijK/9VN4ebU+42d/qJZkiFv/A6i+A85fFoJLfIS4UiPo4F7OaxdVi0lO/BxSp Wkgp/eeLmQX2EKOtK9UySEF9FtLIwJWmmbuqInzP51QHdrsufBXvd22GUBvfOw== 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=1776077870; 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=FWQdH7Ewgr9iPlDOHfqGronLLIBepDy+HoPImr6TIrs=; b=KBF6FaHQvrnuFvDAYe9eGIPUBb2sPDj0Hg5l/jY/w7qNANbY5UHK1ZRenej3BMGqQvl2iu 0Eb/mqSOOOnQsdV1u1StlsC2fxhY6SakcKvU0xMIsDXOeo98nNe/ZRtAq8iKlbS0hUXCNb EjkUmIUqwF2ASHJh1SOwaAOZW/djTh+93DazILo7mwTDUGK4Vp1a/AsRp73zQiQox6qaVi y9QF9m39dnDKaemPeMpHDpkwIndy3/pQqAjg3NNtXO/6KWLueIAU+CfBV9N2DZVC11n43Y vsnmQ3SUMDxiffOQuRV7Hd/EmLqymIB/YQPaK+T9JFJxvBaU+lByaQJp/jABhg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvPWd5pW4z117H for ; Mon, 13 Apr 2026 10:57:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32237 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 10:57:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 58718cf36593 - stable/15 - vm_fault: Reset m_needs_zeroing properly 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 58718cf365933dc2c75d43f7154371344bf47286 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 10:57:44 +0000 Message-Id: <69dccc28.32237.8638128@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=58718cf365933dc2c75d43f7154371344bf47286 commit 58718cf365933dc2c75d43f7154371344bf47286 Author: Mark Johnston AuthorDate: 2026-04-08 04:21:09 +0000 Commit: Mark Johnston CommitDate: 2026-04-13 10:57:26 +0000 vm_fault: Reset m_needs_zeroing properly - When allocating a page, we should only consider the PG_ZERO flag when handling the top-level page. - Unconditionally reset the flag when restarting the fault handler. Previously, vm_fault_busy_sleep() would fail to reset it. PR: 294039 Reviewed by: kib Tested by: Peter Much MFC after: 3 days Fixes: cff67bc43df1 ("vm_fault: only rely on PG_ZERO when the page was newly allocated") Differential Revision: https://reviews.freebsd.org/D56234 (cherry picked from commit 04132e01004316ddd0e0cde6ef15b100b7b1844d) --- sys/vm/vm_fault.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 2eed9851135a..907b02f5833a 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -273,8 +273,6 @@ vm_fault_might_be_cow(struct faultstate *fs) static void vm_fault_deallocate(struct faultstate *fs) { - - fs->m_needs_zeroing = true; vm_fault_page_release(&fs->m_cow); vm_fault_page_release(&fs->m); vm_object_pip_wakeup(fs->object); @@ -1370,7 +1368,8 @@ vm_fault_allocate(struct faultstate *fs, struct pctrie_iter *pages) vm_waitpfault(dset, vm_pfault_oom_wait * hz); return (FAULT_RESTART); } - fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; + if (fs->object == fs->first_object) + fs->m_needs_zeroing = (fs->m->flags & PG_ZERO) == 0; fs->oom_started = false; return (FAULT_CONTINUE); @@ -1705,7 +1704,6 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, fs.fault_flags = fault_flags; fs.map = map; fs.lookup_still_valid = false; - fs.m_needs_zeroing = true; fs.oom_started = false; fs.nera = -1; fs.can_read_lock = true; @@ -1714,6 +1712,7 @@ vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, RetryFault: fs.fault_type = fault_type; + fs.m_needs_zeroing = true; /* * Find the backing store object and offset into it to begin the From nobody Mon Apr 13 12:33:45 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 4fvRfR1Hlcz6Z6ks for ; Mon, 13 Apr 2026 12:33:51 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvRfR0VlLz3bZL for ; Mon, 13 Apr 2026 12:33:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776083631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5OhIV6F0eFPfcLZUSwCf27mD0Ezr2X6AzjjKziASgz8=; b=AugtU5uTRdY0QlCAcdXsFP8+mFJO5QOobHof7XbLdjaUPvZgbZwI7bqWS2Pr2CYX2Qi5tH YdE8H4fK/MKRxKrZwYQmuRb2p9+L9acdSMc6kibGpSdrhpyKOHBN1GTD09DeoH+gqJscnm 36o/rP8SUfnD4capAZ5Ra+az00yGK/W/q0v1JMSRfDnV3zfk3oep8AVcEV0Vzmf4FA9ecL sSGQ5mAA1fyNypO3DdBhNL0tiuSa/powQ9mCDZ0unl6Mke+ofQ4NY6Lp419cEjj26S4aTd pfAoP8OK4uXxyIy1hLfT9qt45joRk2z2nm4wHQcjSdYsxIYaiYYJffwUOHXiig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776083631; a=rsa-sha256; cv=none; b=j1dQCoixWN78bIF6qgUiYSgbU7WZ5rjFpFPMAFTERz/x6pzsEZvDb8JJCNiPNG7IfZjelK Ug+1q98ZpxSdOAsdCumVpMh+00PRh+hznLToDt1+4P1dnA4RZ1oTCcoxnWclK8AiJ03Tj5 Q0PfTytlN2q7NV9qgHaOnBnVyLP8FVYTihpG1AVOob7CDni2ZOIDrJJ8m/MAqQRNuKkWZf zocstOkaAsNaOXwD8bxuFSZnJ8LyAbmCvoBVFAq51uUf1EOzETXWwiuyI3vMPjVQ6SWu7s XGDCs5aUqvDN9QJcLbfHh0j6M1ukVXQMycJOMepPwijDklz3XTS9LeTqC6uiHg== 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=1776083631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5OhIV6F0eFPfcLZUSwCf27mD0Ezr2X6AzjjKziASgz8=; b=jBXkhaGpkyf3o/seLXvXgcnUa1Q/Q6Lpi4ovfqxpizLeQ7kQ6QRAbA5+G0HgsixU9lm3G0 6aiDkTi8kM2GnR5I2gpD76Vlrd9fbAYTFgMVWkPv4qF9OsVXKSeFrTGDQmqMlZ+OQtkPXM vmLNaGqk9/yIIRlhrbyiZNHgNB5ZO+/WQ3SDNwF8sHXlb2+HhBIIUOcQ+IrKjqJ3KxPWfJ ZFio/VY1+LlZe0Gka+0cLEYURC/NPhSx+F8rROxkhrdv8fv11C835b7o/6oJW7pTPOme1j d7G6OX5WuyRrLbsjo57DT1pguXPGdvwBEIuxNKchf7MCNGqGqKkPLeW7dO3LkA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvRfR03MZz13xn for ; Mon, 13 Apr 2026 12:33:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c629 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 12:33:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: YAO, Xin From: Pouria Mousavizadeh Tehrani Subject: git: 26740e8f80da - main - compat/linux: Add Linux i2c-dev ioctl compatibility support 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 26740e8f80da17c78bee6fa322e6bb1f2669be5c Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 12:33:45 +0000 Message-Id: <69dce2a9.3c629.544d35cd@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=26740e8f80da17c78bee6fa322e6bb1f2669be5c commit 26740e8f80da17c78bee6fa322e6bb1f2669be5c Author: YAO, Xin AuthorDate: 2026-04-13 12:28:48 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 12:31:47 +0000 compat/linux: Add Linux i2c-dev ioctl compatibility support Implement Linux I2C ioctl translation in the Linux compatibility layer and wire iicbus cdevs up for in-kernel rdwr handling. Support common i2c-dev requests including SLAVE, FUNCS, and RDWR, while rejecting unsupported 10-bit and SMBus operations. Signed-off-by: YAO, Xin Reviewed by: imp, adrian, pouria Differential Revision: https://reviews.freebsd.org/D56251 --- sys/compat/linux/linux_ioctl.c | 115 +++++++++++++++++++++++++++++++++++++++++ sys/compat/linux/linux_ioctl.h | 24 +++++++++ sys/dev/iicbus/iic.c | 39 ++++++++++++-- sys/dev/iicbus/iic.h | 8 +++ 4 files changed, 182 insertions(+), 4 deletions(-) diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c index d2fa0331026b..b68e950a2dcf 100644 --- a/sys/compat/linux/linux_ioctl.c +++ b/sys/compat/linux/linux_ioctl.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,7 @@ #include #include +#include #include #ifdef COMPAT_LINUX32 @@ -100,6 +102,7 @@ DEFINE_LINUX_IOCTL_SET(vfat, VFAT); DEFINE_LINUX_IOCTL_SET(console, CONSOLE); DEFINE_LINUX_IOCTL_SET(hdio, HDIO); DEFINE_LINUX_IOCTL_SET(disk, DISK); +DEFINE_LINUX_IOCTL_SET(i2c, I2C); DEFINE_LINUX_IOCTL_SET(socket, SOCKET); DEFINE_LINUX_IOCTL_SET(sound, SOUND); DEFINE_LINUX_IOCTL_SET(termio, TERMIO); @@ -160,6 +163,18 @@ struct linux_hd_big_geometry { uint32_t start; }; +struct linux_i2c_msg { + uint16_t addr; + uint16_t flags; + uint16_t len; + l_uintptr_t buf; +}; + +struct linux_i2c_rdwr_data { + l_uintptr_t msgs; + l_uint nmsgs; +}; + static int linux_ioctl_hdio(struct thread *td, struct linux_ioctl_args *args) { @@ -3639,6 +3654,106 @@ linux_ioctl_nvme(struct thread *td, struct linux_ioctl_args *args) } #endif +static int +linux_ioctl_i2c(struct thread *td, struct linux_ioctl_args *args) +{ + struct linux_i2c_rdwr_data lrdwr; + struct linux_i2c_msg *lmsgs = NULL; + struct iic_rdwr_data rdwr; + struct iic_msg *msgs = NULL; + struct file *fp; + iic_linux_rdwr_t *linux_rdwr; + l_ulong funcs; + uint16_t lflags; + uint8_t addr; + int error; + l_uint i; + + error = fget(td, args->fd, &cap_ioctl_rights, &fp); + if (error != 0) + return (error); + + linux_rdwr = NULL; + if (fp->f_type == DTYPE_VNODE && fp->f_vnode != NULL && + fp->f_vnode->v_rdev != NULL) + linux_rdwr = (iic_linux_rdwr_t *)fp->f_vnode->v_rdev->si_drv2; + + switch (args->cmd & 0xffff) { + case LINUX_I2C_RETRIES: + case LINUX_I2C_TIMEOUT: + case LINUX_I2C_PEC: + error = 0; + break; + case LINUX_I2C_TENBIT: + error = (args->arg == 0) ? 0 : ENOTSUP; + break; + case LINUX_I2C_FUNCS: + funcs = LINUX_I2C_FUNC_I2C | LINUX_I2C_FUNC_NOSTART; + error = copyout(&funcs, (void *)args->arg, sizeof(funcs)); + break; + case LINUX_I2C_SLAVE: + case LINUX_I2C_SLAVE_FORCE: + if (args->arg > 0x7f) { + error = EINVAL; + break; + } + addr = (uint8_t)(args->arg << 1); + error = fo_ioctl(fp, I2CSADDR, (caddr_t)&addr, td->td_ucred, td); + break; + case LINUX_I2C_RDWR: + error = copyin((void *)args->arg, &lrdwr, sizeof(lrdwr)); + if (error != 0) + break; + if (lrdwr.nmsgs > IIC_RDRW_MAX_MSGS) { + error = EINVAL; + break; + } + lmsgs = malloc(sizeof(*lmsgs) * lrdwr.nmsgs, M_TEMP, M_WAITOK); + msgs = malloc(sizeof(*msgs) * lrdwr.nmsgs, M_TEMP, M_WAITOK); + error = copyin((void *)(uintptr_t)lrdwr.msgs, lmsgs, + sizeof(*lmsgs) * lrdwr.nmsgs); + if (error != 0) + break; + for (i = 0; i < lrdwr.nmsgs; i++) { + lflags = lmsgs[i].flags; + if (lmsgs[i].addr > 0x7f || (lflags & LINUX_I2C_M_TEN) != 0) { + error = ENOTSUP; + break; + } + if ((lflags & ~(LINUX_I2C_M_RD | LINUX_I2C_M_NOSTART)) != 0) { + error = ENOTSUP; + break; + } + msgs[i].slave = lmsgs[i].addr << 1; + msgs[i].flags = (lflags & LINUX_I2C_M_RD) ? IIC_M_RD : IIC_M_WR; + if ((lflags & LINUX_I2C_M_NOSTART) != 0) + msgs[i].flags |= IIC_M_NOSTART; + msgs[i].len = lmsgs[i].len; + msgs[i].buf = (uint8_t *)(uintptr_t)lmsgs[i].buf; + } + if (error == 0) { + if (linux_rdwr == NULL) { + error = ENOTTY; + } else { + rdwr.msgs = msgs; + rdwr.nmsgs = lrdwr.nmsgs; + error = linux_rdwr(fp, &rdwr, fp->f_flag, td); + if (error == 0) + td->td_retval[0] = lrdwr.nmsgs; + } + } + break; + case LINUX_I2C_SMBUS: + default: + error = ENOTSUP; + break; + } + free(msgs, M_TEMP); + free(lmsgs, M_TEMP); + fdrop(fp, td); + return (error); +} + static int linux_ioctl_hidraw(struct thread *td, struct linux_ioctl_args *args) { diff --git a/sys/compat/linux/linux_ioctl.h b/sys/compat/linux/linux_ioctl.h index 116a4e676228..769f56b7de51 100644 --- a/sys/compat/linux/linux_ioctl.h +++ b/sys/compat/linux/linux_ioctl.h @@ -71,6 +71,30 @@ #define LINUX_IOCTL_HDIO_MIN LINUX_HDIO_GET_GEO #define LINUX_IOCTL_HDIO_MAX LINUX_HDIO_GET_GEO_BIG +/* + * i2c + */ +#define LINUX_I2C_RETRIES 0x0701 +#define LINUX_I2C_TIMEOUT 0x0702 +#define LINUX_I2C_SLAVE 0x0703 +#define LINUX_I2C_TENBIT 0x0704 +#define LINUX_I2C_FUNCS 0x0705 +#define LINUX_I2C_SLAVE_FORCE 0x0706 +#define LINUX_I2C_RDWR 0x0707 +#define LINUX_I2C_PEC 0x0708 +#define LINUX_I2C_SMBUS 0x0720 + +#define LINUX_IOCTL_I2C_MIN LINUX_I2C_RETRIES +#define LINUX_IOCTL_I2C_MAX LINUX_I2C_SMBUS + +#define LINUX_I2C_M_RD 0x0001 +#define LINUX_I2C_M_TEN 0x0010 +#define LINUX_I2C_M_NOSTART 0x4000 + +#define LINUX_I2C_FUNC_I2C 0x00000001UL +#define LINUX_I2C_FUNC_10BIT_ADDR 0x00000002UL +#define LINUX_I2C_FUNC_NOSTART 0x00000010UL + /* * cdrom */ diff --git a/sys/dev/iicbus/iic.c b/sys/dev/iicbus/iic.c index efb8569a23c0..c3fcb2dbdaed 100644 --- a/sys/dev/iicbus/iic.c +++ b/sys/dev/iicbus/iic.c @@ -31,11 +31,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -96,7 +98,10 @@ static void iic_identify(driver_t *driver, device_t parent); static void iicdtor(void *data); static int iicuio_move(struct iic_cdevpriv *priv, struct uio *uio, int last); static int iicuio(struct cdev *dev, struct uio *uio, int ioflag); -static int iicrdwr(struct iic_cdevpriv *priv, struct iic_rdwr_data *d, int flags, bool compat32); +static int iicrdwr(struct iic_cdevpriv *priv, struct iic_rdwr_data *d, + int flags, bool compat32, bool kernel_msgs); +static int iic_linux_rdwr(struct file *fp, struct iic_rdwr_data *d, + int flags, struct thread *td); static device_method_t iic_methods[] = { /* device interface */ @@ -163,6 +168,7 @@ iic_attach(device_t dev) return (ENXIO); } sc->sc_devnode->si_drv1 = sc; + sc->sc_devnode->si_drv2 = (void *)iic_linux_rdwr; return (0); } @@ -341,7 +347,7 @@ iic_copyinmsgs32(struct iic_rdwr_data *d, struct iic_msg *buf) static int iicrdwr(struct iic_cdevpriv *priv, struct iic_rdwr_data *d, int flags, - bool compat32 __unused) + bool compat32 __unused, bool kernel_msgs) { #ifdef COMPAT_FREEBSD32 struct iic_rdwr_data dswab; @@ -375,7 +381,11 @@ iicrdwr(struct iic_cdevpriv *priv, struct iic_rdwr_data *d, int flags, error = iic_copyinmsgs32(d, buf); else #endif - error = copyin(d->msgs, buf, sizeof(*d->msgs) * d->nmsgs); + if (kernel_msgs) + memcpy(buf, d->msgs, sizeof(*d->msgs) * d->nmsgs); + else + error = copyin(d->msgs, buf, + sizeof(*d->msgs) * d->nmsgs); if (error != 0) { free(buf, M_IIC); return (error); @@ -424,6 +434,27 @@ iicrdwr(struct iic_cdevpriv *priv, struct iic_rdwr_data *d, int flags, return (error); } +static int +iic_linux_rdwr(struct file *fp, struct iic_rdwr_data *d, int flags, + struct thread *td) +{ + struct file *saved_fp; + struct iic_cdevpriv *priv; + int error; + + saved_fp = td->td_fpop; + td->td_fpop = fp; + error = devfs_get_cdevpriv((void **)&priv); + td->td_fpop = saved_fp; + if (error != 0) + return (error); + + IIC_LOCK(priv); + error = iicrdwr(priv, d, flags, false, true); + IIC_UNLOCK(priv); + return (error); +} + static int iicioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, struct thread *td) { @@ -582,7 +613,7 @@ iicioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, struct thread *t compat32 = false; #endif error = iicrdwr(priv, (struct iic_rdwr_data *)data, flags, - compat32); + compat32, false); break; diff --git a/sys/dev/iicbus/iic.h b/sys/dev/iicbus/iic.h index f6e9360186e0..badfb76e92eb 100644 --- a/sys/dev/iicbus/iic.h +++ b/sys/dev/iicbus/iic.h @@ -31,6 +31,14 @@ #include +#ifdef _KERNEL +struct file; +struct iic_rdwr_data; +struct thread; +typedef int iic_linux_rdwr_t(struct file *fp, struct iic_rdwr_data *d, + int flags, struct thread *td); +#endif + /* Designed to be compatible with linux's struct i2c_msg */ struct iic_msg { From nobody Mon Apr 13 13:30:32 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 4fvSvx4wgJz6ZBDx for ; Mon, 13 Apr 2026 13:30:37 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvSvx4TT4z3jS9 for ; Mon, 13 Apr 2026 13:30:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776087037; 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=r1hLcTFf47m0nBl479r6y69f/3qGPQg9qT6o3YVtn14=; b=WsOmiAdOt/8/4R65A8FpZYvpjzn+WcjHOBKFKX5hjjb+HAAg4LmldEIdc7TuXFt6ARYCvj Jj6AUhrlES2T5OsodMAg1VRjrjpaoPKqFpKU/3W8zBVOeqRwgkWCa1bQXbRkMMnsdvGZM5 rXgd9pKQP5djqOTBzNXDxAy1gdnGXSQPE4fMEbq3qRDe7z1+9/d0ByvZvp7dmWyLNC3VuD AAFj7nvZA6Urpcwm2dZm8ChZIVy6w7CVQ2QpsTHsWyV05Qq0IVu+JklpW2htqyNGMoDRLC aDvPNAlCDAMoiBF4489UVSU5mUVcqjHWMH7JWv2vCM76/PCBBicXab8YL827jQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776087037; a=rsa-sha256; cv=none; b=NSe6PAaBDKnUPc8cXvEHNy7/zOJGcQMZHbltAAyRHHsrBvUX9mnJe0D8blS/jJgVNoI6MW PCgKawv4a+7xPpCut+MTVgqq0+s1eTkDMV3ACbM3/J1CXTN6Qb1Pgzb5DEXL111KULDJTr /LMmIkx+5M+STME8X2OTqm/ydOtG5/wYX7kx4/ttsXLRw/Cd4JkVwFC9khozrG+gNiV/AD VmNsm0Jzxh0Tzv4UU5eDPr6Sbj6FejS8TGyKHGUfIaV/i6jN+kLbUww3njhcvHWXUH0QiO Si7h+BSnyBTACtXebvAlSphRVJjWScTYTDqw2PDOBUmfYSKaz6+CbLQCO2d/XA== 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=1776087037; 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=r1hLcTFf47m0nBl479r6y69f/3qGPQg9qT6o3YVtn14=; b=UG1Gha84VyqfFc/f8I2GeUofp9o/ClbzhKvWSG+AvM3F4sW5Wa2GouGQQI+su8Mk9jO7Y/ 49P1jeKfZcgyyTIXa/255nOfbTfrE0oXucqcuMGZV7Ykv9OmkQj1DeNLU26mqCiHHZNgWy 6RuTmPme3DT8x/TP1Z2WHxF70ZUYlpUNj6XVaL38Y2/uq1aVOni7BcZoNg3Yu+VzEJY+ET cfAqqpyPxe0KGNhQKkgPoAtKPy6VqggdSKmX/fq+B35lqgzsUlqp0gui/flbWCkPkLv9Pu 38AyGEbinZOUi6UjFhS8unyGStf/pzE25GOhgi00gVjUHbWhaDXTFdRqxpgnAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvSvx3mcQz15ZQ for ; Mon, 13 Apr 2026 13:30:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40567 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 13:30:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Martin Matuska Subject: git: 01333e8c4dd7..f2cd95a37200 - vendor/libarchive - vendor branch updated 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: mm X-Git-Repository: src X-Git-Refname: refs/heads/vendor/libarchive X-Git-Reftype: branch X-Git-Commit: f2cd95a372000681bafe284df6ba857d5c2541c2 X-Git-Oldrev: 01333e8c4dd7b5e2bb90cc773332613cf085ccf4 X-Git-Newrev: f2cd95a372000681bafe284df6ba857d5c2541c2 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 13:30:32 +0000 Message-Id: <69dceff8.40567.2b6a03ea@gitrepo.freebsd.org> The branch vendor/libarchive has been updated by mm: URL: https://cgit.FreeBSD.org/src/log/?id=01333e8c4dd7..f2cd95a37200 f2cd95a37200 Update vendor/libarchive to 3.8.7 From nobody Mon Apr 13 14:06:12 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 4fvTj624X0z6ZDGS for ; Mon, 13 Apr 2026 14:06:18 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTj60FXHz3mDg for ; Mon, 13 Apr 2026 14:06:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089178; 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=xVFNJohSO9+zkyYkAF9v+vJFIA9oozoSi/4eQ6ggZuY=; b=t55ftbMt1yTtpAD0JLebycXqs+QWnFMuTXBfEXLzOmi2FqYa2h83bcR6Aeo8zSu0ZAdEAG M4lD9ZxlFdO/GPIQ47ODVY0HWpsGbUdr/Pd5afvl+sRFKcfZL/LSVF+9qyGK73Gy0EJthu 69St9NoMsY+tYNhYMLvmcK2udhZF5GvNVon8GwiIeE3ZaJRvcPPnGBje43DerlJYOKdpXj 4p5zPMuks/ugxPOeE9OcKqXzvI9m5JfCctbDzC3zcS+SHK+4DGI+W543bu96qbDQSm2Bc5 RJE4F8z0oI0o0c0NDS76EyyouIhmXjRvuASxmFQ1dV2lPN7Kt5kjsm8P3JXKgw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089178; a=rsa-sha256; cv=none; b=fM1LaO+t+SkzjF5Ro+OE4Knr6vjPaauzW9FdCui92GUDARYGrTF9VokUdqfNDHqm05+e40 XZWIxcX2cNfTz5RlMRwOFDKXL1dyG+pbrWzvpLHqZmAZbxHHIHeyKf/e8R3B16QYGZlCYV xyBMsn+VuQW5j8rMuOYVrPzGjANONU/IjcFOcG860KuBldyj+GmxkMFV1YX61t6oZIM75z AX8dilJ2HNAOgMz28sqkHtMJs0JHrOplcUacxT/rFGDseUrp9io+E51J0EN49mif2GeEKA LJ8RHB/QBYlzY+qf1W9DU0Vx/BAOZ7h69hjqLrqHgNah+va09tuWZ33hz2K6QA== 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=1776089178; 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=xVFNJohSO9+zkyYkAF9v+vJFIA9oozoSi/4eQ6ggZuY=; b=f4jwcWxNsClC9Mltaw8vx26mDjNFBtUeEN5Czq4frVFBXgLFncs5DwHojWfbiQMyhOssCs GXgo+HgL7kQqxnAPp2InjgYXDDMPGI+n81kDJVopwsBdKodQOjZgYah/WCBpbkWa7TUhm9 +SyzU5/BIE8acbZS8MgTt5w8ktKoti3xcv3jHmheO3/W/dW9cC3TzNRxa5wspUKLUxF1YL M7OVGpu84IaIpZE9dAM4+Dp19TTGyhjcUz7mKlU2H/uRWbOtD5WOZp9onrSH6ebbcZFajQ C3dBNuYkIK8UGZkKKJMCvjTs4qF2Xg2uMP46zw3tW266jB9m/s1PKc5Q8YYcfw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTj56y44z161X for ; Mon, 13 Apr 2026 14:06:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 425f5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:06:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Martin Matuska Subject: git: eb5165bb4911 - main - libarchive: merge from vendor branch 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: mm X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eb5165bb491138f60d9004bc4c781490016d9288 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:06:12 +0000 Message-Id: <69dcf854.425f5.5d77dfe5@gitrepo.freebsd.org> The branch main has been updated by mm: URL: https://cgit.FreeBSD.org/src/commit/?id=eb5165bb491138f60d9004bc4c781490016d9288 commit eb5165bb491138f60d9004bc4c781490016d9288 Merge: 26740e8f80da f2cd95a37200 Author: Martin Matuska AuthorDate: 2026-04-13 13:47:17 +0000 Commit: Martin Matuska CommitDate: 2026-04-13 13:47:17 +0000 libarchive: merge from vendor branch libarchive 3.8.7 Important bugfixes: #2871 libarchive: fix handling of option failures #2897 iso9660: fix undefined behavior #2898 RAR: fix LZSS window size mismatch after PPMd block #2900 CAB: fix NULL pointer dereference during skip #2911 libarchive: do not continue with truncated numbers #2919 CAB: Fix Heap OOB Write in CAB LZX decoder #2934 iso9660: fix posibble heap buffer overflow on 32-bit systems #2939 cpio: Fix -R memory leak #2947 libarchive: lzop and grzip filter support Important bugfixes between 3.8.5 and 3.8.6: #2860 bsdunzip: fix ISO week year and Gregorian year confusion #2864 7zip: ix SEGV in check_7zip_header_in_sfx via ELF offset validation #2875 7zip: fix out-of-bounds access on ELF 64-bit header #2877 RAR5 reader: fix infinite loop in rar5 decompression #2878 mtree reader: Fix file descriptor leak in mtree parser cleanup (CWE-775) #2892 RAR5 reader: fix potential memory leak #2893 RAR5: fix SIGSEGV when archive_read_support_format_rar5 is called twice #2895 CAB reader: fix memory leak on repeated calls to archive_read_support_format_cab Obtained from: libarchive Vendor commit: ded82291ab41d5e355831b96b0e1ff49e24d8939 MFC after: 1 week contrib/libarchive/NEWS | 4 + contrib/libarchive/README.md | 9 +- contrib/libarchive/cpio/cmdline.c | 15 +- contrib/libarchive/cpio/cpio.c | 123 ++- contrib/libarchive/cpio/cpio.h | 2 - contrib/libarchive/cpio/test/test_format_newc.c | 7 + contrib/libarchive/libarchive/archive.h | 4 +- contrib/libarchive/libarchive/archive_acl.c | 6 +- .../libarchive/libarchive/archive_check_magic.c | 4 +- .../libarchive/archive_cryptor_private.h | 4 + contrib/libarchive/libarchive/archive_entry.h | 2 +- contrib/libarchive/libarchive/archive_hmac.c | 6 + contrib/libarchive/libarchive/archive_options.c | 4 +- contrib/libarchive/libarchive/archive_pathmatch.c | 4 +- contrib/libarchive/libarchive/archive_ppmd8.c | 22 +- .../libarchive/libarchive/archive_ppmd8_private.h | 25 - contrib/libarchive/libarchive/archive_read.c | 12 +- .../libarchive/archive_read_append_filter.c | 4 + .../libarchive/archive_read_disk_posix.c | 6 +- .../libarchive/archive_read_open_filename.c | 7 +- .../libarchive/archive_read_support_filter_grzip.c | 2 +- .../libarchive/archive_read_support_filter_lz4.c | 4 +- .../libarchive/archive_read_support_filter_lzop.c | 2 +- .../archive_read_support_filter_program.c | 2 + .../libarchive/archive_read_support_format_7zip.c | 24 +- .../libarchive/archive_read_support_format_cab.c | 24 +- .../libarchive/archive_read_support_format_cpio.c | 4 +- .../archive_read_support_format_iso9660.c | 26 +- .../libarchive/archive_read_support_format_lha.c | 11 +- .../libarchive/archive_read_support_format_mtree.c | 7 +- .../libarchive/archive_read_support_format_rar.c | 73 +- .../libarchive/archive_read_support_format_rar5.c | 45 +- .../libarchive/archive_read_support_format_tar.c | 6 +- .../libarchive/archive_read_support_format_xar.c | 14 +- .../libarchive/archive_read_support_format_zip.c | 22 +- contrib/libarchive/libarchive/archive_string.c | 16 +- contrib/libarchive/libarchive/archive_write.c | 2 +- .../archive_write_add_filter_b64encode.c | 22 +- .../libarchive/archive_write_add_filter_bzip2.c | 7 +- .../libarchive/archive_write_add_filter_gzip.c | 12 +- .../libarchive/archive_write_add_filter_lrzip.c | 21 +- .../libarchive/archive_write_add_filter_lz4.c | 14 +- .../libarchive/archive_write_add_filter_lzop.c | 7 +- .../libarchive/archive_write_add_filter_uuencode.c | 22 +- .../libarchive/archive_write_add_filter_xz.c | 27 +- .../libarchive/archive_write_add_filter_zstd.c | 52 +- .../libarchive/archive_write_disk_posix.c | 30 +- .../libarchive/archive_write_set_format_7zip.c | 9 +- .../archive_write_set_format_cpio_binary.c | 4 +- .../archive_write_set_format_cpio_newc.c | 2 +- .../libarchive/archive_write_set_format_cpio_odc.c | 2 +- .../libarchive/archive_write_set_format_gnutar.c | 34 +- .../libarchive/archive_write_set_format_iso9660.c | 18 +- .../libarchive/archive_write_set_format_mtree.c | 2 +- .../libarchive/archive_write_set_format_pax.c | 6 +- .../libarchive/archive_write_set_format_ustar.c | 27 +- .../libarchive/archive_write_set_format_v7tar.c | 27 +- .../libarchive/archive_write_set_format_xar.c | 6 +- .../libarchive/archive_write_set_format_zip.c | 49 +- contrib/libarchive/libarchive/test/test_acl_text.c | 23 + .../libarchive/test/test_archive_pathmatch.c | 18 + .../test/test_archive_string_conversion.c | 135 +++ .../test/test_gnutar_filename_encoding.c | 40 + .../libarchive/test/test_read_format_7zip.c | 26 + .../test/test_read_format_7zip_malformed.c | 17 + .../test/test_read_format_7zip_malformed3.7z.uu | 24 + .../test_read_format_7zip_sfx_elf64trunc.elf.uu | 5 + .../libarchive/test/test_read_format_cab_lzx_oob.c | 45 + .../test/test_read_format_cab_lzx_oob.cab.uu | 11 + .../test/test_read_format_cab_skip_malformed.c | 41 + .../test_read_format_cab_skip_malformed.cab.uu | 95 ++ .../test/test_read_format_iso_zisofs_overflow.c | 104 ++ .../test_read_format_iso_zisofs_overflow.iso.uu | 1096 ++++++++++++++++++++ .../test/test_read_format_lha_oversize_header.c | 50 + .../test_read_format_lha_oversize_header.lzh.uu | 60 ++ .../test/test_read_format_rar5_loop_bug.c | 53 + .../test/test_read_format_rar5_loop_bug.rar.uu | 189 ++++ .../libarchive/test/test_read_set_format.c | 34 + .../libarchive/test/test_ustar_filename_encoding.c | 40 + .../libarchive/test/test_v7tar_filename_encoding.c | 67 ++ .../test/test_warn_missing_hardlink_target.c | 2 +- .../libarchive/libarchive/test/test_write_disk.c | 29 + .../libarchive/test/test_write_disk_perms.c | 11 +- .../libarchive/test/test_zip_filename_encoding.c | 40 + .../la_getline.c => libarchive_fe/lafe_getline.c} | 11 +- .../la_getline.h => libarchive_fe/lafe_getline.h} | 15 +- contrib/libarchive/tar/bsdtar.c | 20 +- contrib/libarchive/tar/read.c | 2 +- contrib/libarchive/tar/util.c | 8 +- contrib/libarchive/tar/write.c | 16 +- contrib/libarchive/test_utils/test_common.h | 4 + contrib/libarchive/test_utils/test_main.c | 85 +- contrib/libarchive/unzip/bsdunzip.c | 6 +- lib/libarchive/tests/Makefile | 13 + usr.bin/unzip/Makefile | 2 +- 95 files changed, 3019 insertions(+), 372 deletions(-) diff --cc contrib/libarchive/README.md index e9691f1b710b,000000000000..3009e1b54d18 mode 100644,000000..100644 --- a/contrib/libarchive/README.md +++ b/contrib/libarchive/README.md @@@ -1,247 -1,0 +1,250 @@@ +# Welcome to libarchive! + +The libarchive project develops a portable, efficient C library that +can read and write streaming archives in a variety of formats. It +also includes implementations of the common `tar`, `cpio`, and `zcat` +command-line tools that use the libarchive library. + +## Questions? Issues? + +* https://www.libarchive.org is the home for ongoing + libarchive development, including documentation, + and links to the libarchive mailing lists. +* To report an issue, use the issue tracker at + https://github.com/libarchive/libarchive/issues +* To submit an enhancement to libarchive, please + submit a pull request via GitHub: https://github.com/libarchive/libarchive/pulls + +## Contents of the Distribution + +This distribution bundle includes the following major components: + +* **libarchive**: a library for reading and writing streaming archives +* **tar**: the 'bsdtar' program is a full-featured 'tar' implementation built on libarchive +* **cpio**: the 'bsdcpio' program is a different interface to essentially the same functionality +* **cat**: the 'bsdcat' program is a simple replacement tool for zcat, bzcat, xzcat, and such +* **unzip**: the 'bsdunzip' program is a simple replacement tool for Info-ZIP's unzip +* **examples**: Some small example programs that you may find useful. +* **examples/minitar**: a compact sample demonstrating use of libarchive. +* **contrib**: Various items sent to me by third parties; please contact the authors with any questions. + +The top-level directory contains the following information files: + +* **NEWS** - highlights of recent changes +* **COPYING** - what you can do with this +* **INSTALL** - installation instructions +* **README** - this file +* **CMakeLists.txt** - input for "cmake" build tool, see INSTALL +* **configure** - configuration script, see INSTALL for details. If your copy of the source lacks a `configure` script, you can try to construct it by running the script in `build/autogen.sh` (or use `cmake`). + - The following files in the top-level directory are used by the 'configure' script: ++The following files in the top-level directory are related to the 'configure' script and are only needed by maintainers: + - * `Makefile.am`, `aclocal.m4`, `configure.ac` - used to build this distribution, only needed by maintainers - * `Makefile.in`, `config.h.in` - templates used by configure script ++* `configure.ac` - used (by autoconf) to build the configure script and related files ++* `Makefile.am` - used (by automake) to generate Makefile.in ++* `aclocal.m4` - auto-generated file (created by aclocal) used to build the configure script ++* `Makefile.in` - auto-generated template (created by automake) used by the configure script to create Makefile ++* `config.h.in` - auto-generated template (created by autoheader) used by the configure script to create config.h + +## Documentation + +In addition to the informational articles and documentation +in the online [libarchive Wiki](https://github.com/libarchive/libarchive/wiki), +the distribution also includes a number of manual pages: + + * bsdtar.1 explains the use of the bsdtar program + * bsdcpio.1 explains the use of the bsdcpio program + * bsdcat.1 explains the use of the bsdcat program + * libarchive.3 gives an overview of the library as a whole + * archive_read.3, archive_write.3, archive_write_disk.3, and + archive_read_disk.3 provide detailed calling sequences for the read + and write APIs + * archive_entry.3 details the "struct archive_entry" utility class + * archive_internals.3 provides some insight into libarchive's + internal structure and operation. + * libarchive-formats.5 documents the file formats supported by the library + * cpio.5, mtree.5, and tar.5 provide detailed information about these + popular archive formats, including hard-to-find details about + modern cpio and tar variants. + +The manual pages above are provided in the 'doc' directory in +a number of different formats. + +You should also read the copious comments in `archive.h` and the +source code for the sample programs for more details. Please let us +know about any errors or omissions you find. + +## Supported Formats + +Currently, the library automatically detects and reads the following formats: + + * Old V7 tar archives + * POSIX ustar + * GNU tar format (including GNU long filenames, long link names, and sparse files) + * Solaris 9 extended tar format (including ACLs) + * POSIX pax interchange format + * POSIX octet-oriented cpio + * SVR4 ASCII cpio + * Binary cpio (big-endian or little-endian) + * PWB binary cpio + * ISO9660 CD-ROM images (with optional Rockridge or Joliet extensions) + * ZIP archives (with uncompressed or "deflate" compressed entries, including support for encrypted Zip archives) + * ZIPX archives (with support for bzip2, zstd, ppmd8, lzma and xz compressed entries) + * GNU and BSD 'ar' archives + * 'mtree' format + * 7-Zip archives (including archives that use zstandard compression) + * Microsoft CAB format + * LHA and LZH archives + * RAR and RAR 5.0 archives (with some limitations due to RAR's proprietary status) + * WARC archives + * XAR archives + +The library also detects and handles any of the following before evaluating the archive: + + * uuencoded files + * files with RPM wrapper + * gzip compression + * bzip2 compression + * compress/LZW compression + * lzma, lzip, and xz compression + * lz4 compression + * lzop compression + * zstandard compression + +The library can create archives in any of the following formats: + + * POSIX ustar + * POSIX pax interchange format + * "restricted" pax format, which will create ustar archives except for + entries that require pax extensions (for long filenames, ACLs, etc). + * Old GNU tar format + * Old V7 tar format + * POSIX octet-oriented cpio + * SVR4 "newc" cpio + * Binary cpio (little-endian) + * PWB binary cpio + * shar archives + * ZIP archives (with uncompressed or "deflate" compressed entries) + * ZIPX archives (with bzip2, zstd, lzma or xz compressed entries) + * GNU and BSD 'ar' archives + * 'mtree' format + * ISO9660 format + * 7-Zip archives (including archives that use zstandard compression) + * WARC archives + * XAR archives + +When creating archives, the result can be filtered with any of the following: + + * uuencode + * base64 + * gzip compression + * bzip2 compression + * compress/LZW compression + * lzma, lzip, and xz compression + * lz4 compression + * lzop compression + * zstandard compression + +## Notes about the Library Design + +The following notes address many of the most common +questions we are asked about libarchive: + +* This is a heavily stream-oriented system. That means that + it is optimized to read or write the archive in a single + pass from beginning to end. For example, this allows + libarchive to process archives too large to store on disk + by processing them on-the-fly as they are read from or + written to a network or tape drive. This also makes + libarchive useful for tools that need to produce + archives on-the-fly (such as webservers that provide + archived contents of a users account). + +* In-place modification and random access to the contents + of an archive are not directly supported. For some formats, + this is not an issue: For example, tar.gz archives are not + designed for random access. In some other cases, libarchive + can re-open an archive and scan it from the beginning quickly + enough to provide the needed abilities even without true + random access. Of course, some applications do require true + random access; those applications should consider alternatives + to libarchive. + +* The library is designed to be extended with new compression and + archive formats. The only requirement is that the format be + readable or writable as a stream and that each archive entry be + independent. There are articles on the libarchive Wiki explaining + how to extend libarchive. + +* On read, compression and format are always detected automatically. + +* The same API is used for all formats; it should be very + easy for software using libarchive to transparently handle + any of libarchive's archiving formats. + +* Libarchive's automatic support for decompression can be used + without archiving by explicitly selecting the "raw" and "empty" + formats. + +* I've attempted to minimize static link pollution. If you don't + explicitly invoke a particular feature (such as support for a + particular compression or format), it won't get pulled in to + statically-linked programs. In particular, if you don't explicitly + enable a particular compression or decompression support, you won't + need to link against the corresponding compression or decompression + libraries. This also reduces the size of statically-linked + binaries in environments where that matters. + +* The library is generally _thread-safe_ depending on the platform: + it does not define any global variables of its own. However, some + platforms do not provide fully thread-safe versions of key C library + functions. On those platforms, libarchive will use the non-thread-safe + functions. Patches to improve this are of great interest to us. + +* The function `archive_write_disk_header()` is _not_ thread safe on + POSIX machines and could lead to security issue resulting in world + writeable directories. Thus it must be mutexed by the calling code. + This is due to calling `umask(oldumask = umask(0))`, which sets the + umask for the whole process to 0 for a short time frame. + In case other thread calls the same function in parallel, it might + get interrupted by it and cause the executable to use umask=0 for the + remaining execution. + This will then lead to implicitly created directories to have 777 + permissions without sticky bit. + +* In particular, libarchive's modules to read or write a directory + tree do use `chdir()` to optimize the directory traversals. This + can cause problems for programs that expect to do disk access from + multiple threads. Of course, those modules are completely + optional and you can use the rest of libarchive without them. + +* The library is _not_ thread-aware, however. It does no locking + or thread management of any kind. If you create a libarchive + object and need to access it from multiple threads, you will + need to provide your own locking. + +* On read, the library accepts whatever blocks you hand it. + Your read callback is free to pass the library a byte at a time + or mmap the entire archive and give it to the library at once. + On write, the library always produces correctly-blocked output. + +* The object-style approach allows you to have multiple archive streams + open at once. bsdtar uses this in its "@archive" extension. + +* The archive itself is read/written using callback functions. + You can read an archive directly from an in-memory buffer or + write it to a socket, if you wish. There are some utility + functions to provide easy-to-use "open file," etc, capabilities. + +* The read/write APIs are designed to allow individual entries + to be read or written to any data source: You can create + a block of data in memory and add it to a tar archive without + first writing a temporary file. You can also read an entry from + an archive and write the data directly to a socket. If you want + to read/write entries to disk, there are convenience functions to + make this especially easy. + +* Note: The "pax interchange format" is a POSIX standard extended tar + format that should be used when the older _ustar_ format is not + appropriate. It has many advantages over other tar formats + (including the legacy GNU tar format) and is widely supported by + current tar implementations. diff --cc contrib/libarchive/libarchive/test/test_read_format_7zip_malformed3.7z.uu index 000000000000,4e814980a6da..4e814980a6da mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_7zip_malformed3.7z.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_7zip_malformed3.7z.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_elf64trunc.elf.uu index 000000000000,512da918218b..512da918218b mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_elf64trunc.elf.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_7zip_sfx_elf64trunc.elf.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.c index 000000000000,a4c15d62f789..a4c15d62f789 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.c +++ b/contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.c diff --cc contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.cab.uu index 000000000000,2f453ef27116..2f453ef27116 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.cab.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_cab_lzx_oob.cab.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.c index 000000000000,05cc80b79c93..05cc80b79c93 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.c +++ b/contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.c diff --cc contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.cab.uu index 000000000000,7ec83433546d..7ec83433546d mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.cab.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_cab_skip_malformed.cab.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.c index 000000000000,bad52b154acd..bad52b154acd mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.c +++ b/contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.c diff --cc contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu index 000000000000,5e7dcc3750ac..5e7dcc3750ac mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.c index 000000000000,fbdbd671df7c..fbdbd671df7c mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.c +++ b/contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.c diff --cc contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.lzh.uu index 000000000000,e562e440a777..e562e440a777 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.lzh.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_lha_oversize_header.lzh.uu diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.c index 000000000000,77dd78cccc48..77dd78cccc48 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.c +++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.c diff --cc contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.rar.uu index 000000000000,3e470043fb70..3e470043fb70 mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.rar.uu +++ b/contrib/libarchive/libarchive/test/test_read_format_rar5_loop_bug.rar.uu diff --cc contrib/libarchive/libarchive/test/test_v7tar_filename_encoding.c index 000000000000,96594b12180e..96594b12180e mode 000000,100644..100644 --- a/contrib/libarchive/libarchive/test/test_v7tar_filename_encoding.c +++ b/contrib/libarchive/libarchive/test/test_v7tar_filename_encoding.c diff --cc lib/libarchive/tests/Makefile index 880c0d3ce0c6,000000000000..3a03725054f4 mode 100644,000000..100644 --- a/lib/libarchive/tests/Makefile +++ b/lib/libarchive/tests/Makefile @@@ -1,751 -1,0 +1,764 @@@ +.include + +PACKAGE= tests + +WARNS?= 3 + +_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive + +ATF_TESTS_SH+= functional_test + +TEST_METADATA.functional_test+= timeout="600" + +BINDIR= ${TESTSDIR} + +PROGS+= libarchive_test + +CFLAGS+= -I${.CURDIR} -I${.CURDIR:H} -I${.OBJDIR} +CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive -I${_LIBARCHIVEDIR}/libarchive/test +CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils +CFLAGS+= -I${SRCTOP}/sys/contrib/zstd/lib + +CFLAGS.test_utils.c+= -Wno-cast-align + +# Uncomment to link against dmalloc +#LDADD+= -L/usr/local/lib -ldmalloc +#CFLAGS+= -I/usr/local/include -DUSE_DMALLOC + +.PATH: ${_LIBARCHIVEDIR}/libarchive/test +TESTS_SRCS= \ + test_7zip_filename_encoding.c \ + test_acl_nfs4.c \ + test_acl_pax.c \ + test_acl_platform_nfs4.c \ + test_acl_platform_posix1e.c \ + test_acl_posix1e.c \ + test_acl_text.c \ + test_ar_mode.c \ + test_archive_api_feature.c \ + test_archive_clear_error.c \ + test_archive_cmdline.c \ + test_archive_digest.c \ + test_archive_match_time.c \ + test_archive_match_owner.c \ + test_archive_match_path.c \ + test_archive_pathmatch.c \ + test_archive_parse_date.c \ + test_archive_read.c \ + test_archive_read_add_passphrase.c \ + test_archive_read_close_twice.c \ + test_archive_read_close_twice_open_fd.c \ + test_archive_read_close_twice_open_filename.c \ + test_archive_read_multiple_data_objects.c \ + test_archive_read_next_header_empty.c \ + test_archive_read_next_header_raw.c \ + test_archive_read_open2.c \ + test_archive_read_set_filter_option.c \ + test_archive_read_set_format_option.c \ + test_archive_read_set_option.c \ + test_archive_read_set_options.c \ + test_archive_read_support.c \ + test_archive_set_error.c \ + test_archive_string.c \ + test_archive_string_conversion.c \ + test_archive_write_add_filter_by_name.c \ + test_archive_write_set_filter_option.c \ + test_archive_write_set_format_by_name.c \ + test_archive_write_set_format_filter_by_ext.c \ + test_archive_write_set_format_option.c \ + test_archive_write_set_option.c \ + test_archive_write_set_options.c \ + test_archive_write_set_passphrase.c \ + test_bad_fd.c \ + test_compat_bzip2.c \ + test_compat_cpio.c \ + test_compat_gtar.c \ + test_compat_gtar_large.c \ + test_compat_gzip.c \ + test_compat_lz4.c \ + test_compat_lzip.c \ + test_compat_lzma.c \ + test_compat_lzop.c \ + test_compat_mac.c \ + test_compat_perl_archive_tar.c \ + test_compat_plexus_archiver_tar.c \ + test_compat_solaris_tar_acl.c \ + test_compat_solaris_pax_sparse.c \ + test_compat_star_acl.c \ + test_compat_tar_directory.c \ + test_compat_tar_hardlink.c \ + test_compat_uudecode.c \ + test_compat_uudecode_large.c \ + test_compat_xz.c \ + test_compat_zip.c \ + test_compat_zstd.c \ + test_empty_write.c \ + test_entry.c \ + test_entry_strmode.c \ + test_extattr_freebsd.c \ + test_filter_count.c \ + test_gnutar_filename_encoding.c \ + test_link_resolver.c \ + test_open_fd.c \ + test_open_failure.c \ + test_open_file.c \ + test_open_filename.c \ + test_pax_filename_encoding.c \ + test_pax_xattr_header.c \ + test_read_data_large.c \ + test_read_disk.c \ + test_read_disk_directory_traversals.c \ + test_read_disk_entry_from_file.c \ + test_read_extract.c \ + test_read_file_nonexistent.c \ + test_read_filter_compress.c \ + test_read_filter_grzip.c \ + test_read_filter_gzip_recursive.c \ + test_read_filter_lrzip.c \ + test_read_filter_lzop.c \ + test_read_filter_lzop_multiple_parts.c \ + test_read_filter_program.c \ + test_read_filter_program_signature.c \ + test_read_filter_uudecode.c \ + test_read_filter_uudecode_raw.c \ + test_read_format_7zip.c \ + test_read_format_7zip_encryption_data.c \ + test_read_format_7zip_encryption_header.c \ + test_read_format_7zip_encryption_partially.c \ + test_read_format_7zip_issue2765.c \ + test_read_format_7zip_malformed.c \ + test_read_format_7zip_packinfo_digests.c \ + test_read_format_ar.c \ + test_read_format_cab.c \ + test_read_format_cab_filename.c \ ++ test_read_format_cab_lzx_oob.c \ ++ test_read_format_cab_skip_malformed.c \ + test_read_format_cpio_afio.c \ + test_read_format_cpio_bin.c \ + test_read_format_cpio_bin_Z.c \ + test_read_format_cpio_bin_be.c \ + test_read_format_cpio_bin_bz2.c \ + test_read_format_cpio_bin_gz.c \ + test_read_format_cpio_bin_le.c \ + test_read_format_cpio_bin_lzip.c \ + test_read_format_cpio_bin_lzma.c \ + test_read_format_cpio_bin_xz.c \ + test_read_format_cpio_filename.c \ + test_read_format_cpio_odc.c \ + test_read_format_cpio_svr4_gzip.c \ + test_read_format_cpio_svr4c_Z.c \ + test_read_format_cpio_svr4_bzip2_rpm.c \ + test_read_format_cpio_svr4_gzip_rpm.c \ + test_read_format_empty.c \ + test_read_format_gtar_filename.c \ + test_read_format_gtar_gz.c \ + test_read_format_gtar_lzma.c \ + test_read_format_gtar_redundant_L.c \ + test_read_format_gtar_sparse.c \ + test_read_format_gtar_sparse_length.c \ + test_read_format_gtar_sparse_skip_entry.c \ + test_read_format_huge_rpm.c \ + test_read_format_iso_Z.c \ + test_read_format_iso_multi_extent.c \ + test_read_format_iso_xorriso.c \ ++ test_read_format_iso_zisofs_overflow.c \ + test_read_format_isorr_rr_moved.c \ + test_read_format_isojoliet_bz2.c \ + test_read_format_isojoliet_long.c \ + test_read_format_isojoliet_rr.c \ + test_read_format_isojoliet_versioned.c \ + test_read_format_isorr_bz2.c \ + test_read_format_isorr_ce.c \ + test_read_format_isorr_new_bz2.c \ + test_read_format_isozisofs_bz2.c \ + test_read_format_lha.c \ + test_read_format_lha_bugfix_0.c \ + test_read_format_lha_filename.c \ + test_read_format_lha_filename_utf16.c \ ++ test_read_format_lha_oversize_header.c \ + test_read_format_mtree.c \ + test_read_format_mtree_crash747.c \ + test_read_format_pax_bz2.c \ + test_read_format_rar.c \ ++ test_read_format_rar5_loop_bug.c \ + test_read_format_rar5.c \ + test_read_format_rar_encryption.c \ + test_read_format_rar_encryption_data.c \ + test_read_format_rar_encryption_header.c \ + test_read_format_rar_encryption_partially.c \ + test_read_format_rar_filter.c \ + test_read_format_rar_invalid1.c \ + test_read_format_rar_overflow.c \ + test_read_format_raw.c \ + test_read_format_tar.c \ + test_read_format_tar_V_negative_size.c \ + test_read_format_tar_concatenated.c \ + test_read_format_tar_empty_filename.c \ + test_read_format_tar_empty_pax.c \ + test_read_format_tar_empty_with_gnulabel.c \ + test_read_format_tar_filename.c \ + test_read_format_tar_invalid_pax_size.c \ + test_read_format_tar_mac_metadata.c \ + test_read_format_tar_pax_g_large.c \ + test_read_format_tar_pax_large_attr.c \ + test_read_format_tar_pax_negative_time.c \ + test_read_format_tbz.c \ + test_read_format_tgz.c \ + test_read_format_tlz.c \ + test_read_format_txz.c \ + test_read_format_tz.c \ + test_read_format_ustar_filename.c \ + test_read_format_warc.c \ + test_read_format_xar.c \ + test_read_format_xar_doublelink.c \ + test_read_format_zip.c \ + test_read_format_zip_7075_utf8_paths.c \ + test_read_format_zip_comment_stored.c \ + test_read_format_zip_encryption_data.c \ + test_read_format_zip_encryption_header.c \ + test_read_format_zip_encryption_partially.c \ + test_read_format_zip_extra_padding.c \ + test_read_format_zip_filename.c \ + test_read_format_zip_high_compression.c \ + test_read_format_zip_jar.c \ + test_read_format_zip_mac_metadata.c \ + test_read_format_zip_malformed.c \ + test_read_format_zip_msdos.c \ + test_read_format_zip_nested.c \ + test_read_format_zip_nofiletype.c \ + test_read_format_zip_padded.c \ + test_read_format_zip_sfx.c \ + test_read_format_zip_traditional_encryption_data.c \ + test_read_format_zip_winzip_aes.c \ + test_read_format_zip_winzip_aes_large.c \ + test_read_format_zip_with_invalid_traditional_eocd.c \ + test_read_format_zip_zip64.c \ + test_read_large.c \ + test_read_pax_empty_val_no_nl.c \ + test_read_pax_xattr_rht_security_selinux.c \ + test_read_pax_xattr_schily.c \ + test_read_pax_truncated.c \ + test_read_position.c \ + test_read_set_format.c \ + test_read_too_many_filters.c \ + test_read_truncated.c \ + test_read_truncated_filter.c \ + test_short_writes.c \ + test_sparse_basic.c \ + test_tar_filenames.c \ + test_tar_large.c \ ++ test_v7tar_filename_encoding.c \ + test_warn_missing_hardlink_target.c \ + test_ustar_filenames.c \ + test_ustar_filename_encoding.c \ + test_write_disk.c \ + test_write_disk_appledouble.c \ + test_write_disk_failures.c \ + test_write_disk_fixup.c \ + test_write_disk_hardlink.c \ + test_write_disk_hfs_compression.c \ + test_write_disk_lookup.c \ + test_write_disk_mac_metadata.c \ + test_write_disk_no_hfs_compression.c \ + test_write_disk_perms.c \ + test_write_disk_secure.c \ + test_write_disk_secure_noabsolutepaths.c \ + test_write_disk_secure744.c \ + test_write_disk_secure745.c \ + test_write_disk_secure746.c \ + test_write_disk_sparse.c \ + test_write_disk_symlink.c \ + test_write_disk_times.c \ + test_write_filter_b64encode.c \ + test_write_filter_bzip2.c \ + test_write_filter_compress.c \ + test_write_filter_gzip.c \ + test_write_filter_gzip_timestamp.c \ + test_write_filter_lrzip.c \ + test_write_filter_lz4.c \ + test_write_filter_lzip.c \ + test_write_filter_lzma.c \ + test_write_filter_lzop.c \ + test_write_filter_program.c \ + test_write_filter_uuencode.c \ + test_write_filter_xz.c \ + test_write_filter_zstd.c \ + test_write_format_7zip.c \ + test_write_format_7zip_empty.c \ + test_write_format_7zip_large.c \ + test_write_format_ar.c \ + test_write_format_cpio.c \ + test_write_format_cpio_empty.c \ + test_write_format_cpio_newc.c \ + test_write_format_cpio_odc.c \ + test_write_format_gnutar.c \ + test_write_format_gnutar_filenames.c \ + test_write_format_iso9660.c \ + test_write_format_iso9660_boot.c \ + test_write_format_iso9660_empty.c \ + test_write_format_iso9660_filename.c \ + test_write_format_iso9660_zisofs.c \ + test_write_format_mtree.c \ + test_write_format_mtree_absolute_path.c \ + test_write_format_mtree_classic.c \ + test_write_format_mtree_classic_indent.c \ + test_write_format_mtree_fflags.c \ + test_write_format_mtree_no_separator.c \ + test_write_format_mtree_preset_digests.c \ + test_write_format_mtree_quoted_filename.c \ + test_write_format_pax.c \ + test_write_format_raw.c \ + test_write_format_raw_b64.c \ + test_write_format_shar_empty.c \ + test_write_format_tar.c \ + test_write_format_tar_empty.c \ + test_write_format_tar_sparse.c \ + test_write_format_tar_ustar.c \ + test_write_format_tar_v7tar.c \ + test_write_format_warc.c \ + test_write_format_warc_empty.c \ + test_write_format_xar.c \ + test_write_format_xar_empty.c \ + test_write_format_zip.c \ + test_write_format_zip_compression_store.c \ + test_write_format_zip_compression_zstd.c \ + test_write_format_zip_compression_bzip2.c \ + test_write_format_zip_compression_lzmaxz.c \ + test_write_format_zip_empty.c \ + test_write_format_zip_empty_zip64.c \ + test_write_format_zip_entry_size_unset.c \ + test_write_format_zip_file.c \ + test_write_format_zip_file_zip64.c \ + test_write_format_zip_large.c \ + test_write_format_zip_zip64.c \ + test_write_format_zip64_stream.c \ + test_write_format_zip_stream.c \ + test_write_format_zip_windows_path.c \ + test_write_open_memory.c \ + test_write_read_format_zip.c \ + test_xattr_platform.c \ + test_zip_filename_encoding.c + +# Deterministic failures: +# Fails with `test_read_disk_directory_traversals.c:1094: File at has atime 886622, 1443306049 seconds ago` +BROKEN_TESTS+= test_read_disk_directory_traversals + +.if 0 +# test_fuzz.c is not a real test, but rather a simple fuzz-test using random(). +# Since this is not a regression/unit test, we don't include it by default. +# If you would still like to include it, comment out the `.if 0`. +TEST_SCRCS+= test_fuzz.c +${PACKAGE}FILES+= test_fuzz.cab.uu +${PACKAGE}FILES+= test_fuzz.lzh.uu +${PACKAGE}FILES+= test_fuzz_1.iso.Z.uu +# Non-deterministic failures: +# (Times out?) [and] crashes +BROKEN_TESTS+= test_fuzz_rar +.endif + +# Build the test program. +SRCS.libarchive_test= \ + ${TESTS_SRCS} \ + read_open_memory.c \ + list.h + +LIBADD.libarchive_test= archive + +.PATH: ${_LIBARCHIVEDIR}/test_utils +SRCS.libarchive_test+= test_main.c \ + test_utils.c + +# list.h is just a list of all tests, as indicated by DEFINE_TEST macro lines +list.h: ${TESTS_SRCS} Makefile + @(cd ${_LIBARCHIVEDIR}/libarchive/test && \ + grep -E -h ^DEFINE_TEST ${.ALLSRC:N*Makefile} | \ + egrep -v '${BROKEN_TESTS:tW:C/ /|/g}') > ${.TARGET}.tmp + @mv ${.TARGET}.tmp ${.TARGET} + +CLEANTESTS+= list.h list.h.tmp +${PACKAGE}FILES+= README +${PACKAGE}FILES+= test_acl_pax_posix1e.tar.uu +${PACKAGE}FILES+= test_acl_pax_nfs4.tar.uu +${PACKAGE}FILES+= test_archive_string_conversion.txt.Z.uu +${PACKAGE}FILES+= test_compat_bzip2_1.tbz.uu +${PACKAGE}FILES+= test_compat_bzip2_2.tbz.uu +${PACKAGE}FILES+= test_compat_cpio_1.cpio.uu +${PACKAGE}FILES+= test_compat_gtar_1.tar.uu +${PACKAGE}FILES+= test_compat_gtar_2.tar.uu +${PACKAGE}FILES+= test_compat_gzip_1.tgz.uu +${PACKAGE}FILES+= test_compat_gzip_2.tgz.uu +${PACKAGE}FILES+= test_compat_lz4_1.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_2.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_3.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B4.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B4BD.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B4BDBX.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B5.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B5BD.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B6.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B6BD.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B7.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_B7BD.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lz4_skippable_frames_B4.tar.lz4.uu +${PACKAGE}FILES+= test_compat_lzip_1.tlz.uu +${PACKAGE}FILES+= test_compat_lzip_2.tlz.uu +${PACKAGE}FILES+= test_compat_lzip_3.lz.uu +${PACKAGE}FILES+= test_compat_lzip_4.tlz.uu +${PACKAGE}FILES+= test_compat_lzma_1.tlz.uu +${PACKAGE}FILES+= test_compat_lzma_2.tlz.uu +${PACKAGE}FILES+= test_compat_lzma_3.tlz.uu +${PACKAGE}FILES+= test_compat_lzop_1.tar.lzo.uu +${PACKAGE}FILES+= test_compat_lzop_2.tar.lzo.uu +${PACKAGE}FILES+= test_compat_lzop_3.tar.lzo.uu +${PACKAGE}FILES+= test_compat_mac-1.tar.Z.uu +${PACKAGE}FILES+= test_compat_mac-2.tar.Z.uu +${PACKAGE}FILES+= test_compat_perl_archive_tar.tar.uu +${PACKAGE}FILES+= test_compat_plexus_archiver_tar.tar.uu +${PACKAGE}FILES+= test_compat_solaris_pax_sparse_1.pax.Z.uu +${PACKAGE}FILES+= test_compat_solaris_pax_sparse_2.pax.Z.uu +${PACKAGE}FILES+= test_compat_solaris_tar_acl.tar.uu +${PACKAGE}FILES+= test_compat_star_acl_nfs4.tar.uu +${PACKAGE}FILES+= test_compat_star_acl_posix1e.tar.uu +${PACKAGE}FILES+= test_compat_tar_directory_1.tar.uu +${PACKAGE}FILES+= test_compat_tar_hardlink_1.tar.uu +${PACKAGE}FILES+= test_compat_uudecode_large.tar.Z.uu +${PACKAGE}FILES+= test_compat_xz_1.txz.uu +${PACKAGE}FILES+= test_compat_zip_1.zip.uu +${PACKAGE}FILES+= test_compat_zip_2.zip.uu +${PACKAGE}FILES+= test_compat_zip_3.zip.uu +${PACKAGE}FILES+= test_compat_zip_4.zip.uu +${PACKAGE}FILES+= test_compat_zip_5.zip.uu +${PACKAGE}FILES+= test_compat_zip_6.zip.uu +${PACKAGE}FILES+= test_compat_zip_7.xps.uu +${PACKAGE}FILES+= test_compat_zip_8.zip.uu +${PACKAGE}FILES+= test_compat_zstd_1.tar.zst.uu +${PACKAGE}FILES+= test_compat_zstd_2.tar.zst.uu +${PACKAGE}FILES+= test_pax_filename_encoding.tar.uu +${PACKAGE}FILES+= test_pax_xattr_header_all.tar.uu +${PACKAGE}FILES+= test_pax_xattr_header_libarchive.tar.uu +${PACKAGE}FILES+= test_pax_xattr_header_schily.tar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part1.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part2.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part3.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part4.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part5.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_multiple_files.part6.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_single_file.part1.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_single_file.part2.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_single_file.part3.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part01.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part02.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part03.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part04.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part05.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part06.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part07.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part08.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part09.rar.uu +${PACKAGE}FILES+= test_rar_multivolume_uncompressed_files.part10.rar.uu +${PACKAGE}FILES+= test_read_filter_grzip.tar.grz.uu +${PACKAGE}FILES+= test_read_filter_gzip_recursive.gz.uu +${PACKAGE}FILES+= test_read_filter_lrzip.tar.lrz.uu +${PACKAGE}FILES+= test_read_filter_lzop.tar.lzo.uu +${PACKAGE}FILES+= test_read_filter_lzop_multiple_parts.tar.lzo.uu +${PACKAGE}FILES+= test_read_filter_uudecode_base64_raw.uu +${PACKAGE}FILES+= test_read_filter_uudecode_raw.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_bzip2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_copy_1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_copy_2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_copy_lzma.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_deflate.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_deflate_arm64.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_deflate_powerpc.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma1_1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma1_2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma2_1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj2_lzma2_2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj_bzip2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj_copy.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj_deflate.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj_lzma1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bcj_lzma2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_bzip2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_copy.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_copy_2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_deflate.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_delta_lzma1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_delta_lzma2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_delta4_lzma1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_delta4_lzma2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_empty_archive.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_empty_file.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_encryption.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_encryption_header.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_encryption_partially.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_extract_second.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_issue2765.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma1.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma1_2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma1_lzma2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2_arm.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2_arm64.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2_powerpc.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2_riscv.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_lzma2_sparc.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_malformed.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_malformed2.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_malformed3.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_packinfo_digests.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_ppmd.7z.uu ++${PACKAGE}FILES+= test_read_format_7zip_sfx_elf64trunc.elf.uu +${PACKAGE}FILES+= test_read_format_7zip_sfx_elf.elf.uu +${PACKAGE}FILES+= test_read_format_7zip_sfx_modified_pe.exe.uu +${PACKAGE}FILES+= test_read_format_7zip_sfx_pe.exe.uu +${PACKAGE}FILES+= test_read_format_7zip_solid_zstd.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_symbolic_name.7z.uu +${PACKAGE}FILES+= test_read_format_7zip_zstd.7z.uu *** 284 LINES SKIPPED *** From nobody Mon Apr 13 14:16:57 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 4fvTxQ2hPKz6ZF01 for ; Mon, 13 Apr 2026 14:16:58 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTxQ0NX9z3nrv for ; Mon, 13 Apr 2026 14:16:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089818; 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=O7wvGHzgtBNYFBqB0cA1kA5dp0hWbA6siYUmaHWZHmg=; b=qaubJ4/JtY7aL3NClLM26jiKowlbjnG3zDXfLIWAvj1oOnpgkC34jshta4IY9tCIk9MKA8 VoSKHy+EJymK8T1SXEvO3oKxm6z2GishiocscnJTHqtbK9fIuJYitiFXy4n7yWc3dvGFed 1brzxvn0vKsjmt0rtDNv36X3wiiYY3jdx+zsyZwcYPu+Bs6CsQJy0yGNOFg56yiEbx1VWP j1yTFAs1El70BFw0jCMcRNC+1NEoHeceR7MOsYoKgEjp4kszObhY5r6iTsjgxs+Ml5VEax HspNT8uHLmrKJW65Ixp6mfjWI065urxEPfWKJTEuDFDGLJlJ2JiRKR05kA3xuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089818; a=rsa-sha256; cv=none; b=nuMMVcuZaPzGym6TDWVD2vXydY8wCUzrUIVV87D8cYbwZNEsPAbi5K+22avEnuCXukozfG EG5Ay9rFZ/dgOdpvjEmLcRmHdW0KYNYR8whX0P8aF1y4UHmF9kS91KTsBdul4i1FTwHbxi MgzpY/VELzXMRmtQqgkqMkVPnjhHxQ8ndwYG16fERddgKCBNQcB0CcWwcbSKXa8mUKsNQC T4vf+IiGKAK3ZJRjuQNUcB45WZogMPAMJRdTL+iLHPsMSsd/u9IMnECL8qm0/GieyWHM0J 4FJtJigDMC8XlFk8C2yKHfSpPXhVpzTv7d74pX3NXdVnppRJlWnVuApLWt79XA== 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=1776089818; 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=O7wvGHzgtBNYFBqB0cA1kA5dp0hWbA6siYUmaHWZHmg=; b=OcTa87lcsQ8sC2tcOXTsuYSdRInV+JzJDxnttJbDArz1GHNNG7CXfR2f/5+k/oIbnFIdHG 6QI0kZhYtfwNlwkxuy+bWA/nhlsfXhx8YvJ82YEz8mpX5Ekvhc3rtUtfQlmohrY/b/X7YR xQFqr3IYqvGWGOaN7jdMmaqE0XeXfRGs6mYy6x0nYIMhx+GKyq0+E32h+PHaU4TuAqg+8H s47jt0EPMxhpR05qllC0xRgZ/NaoyDHaAWb3pEqbv4qmQnTrlIOMeiF45xCeFn8bin9aBB tNaZkbqg4dfg5/NIc4qQDH5w5oiGk6PWfbZrPSAzbUI8eJ85Mc2NDkfkDuu9PQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTxP73LRz16rY for ; Mon, 13 Apr 2026 14:16:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46b23 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:16:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: 688e289ee904 - main - ifconfig: Add support for geneve (netlink) 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 688e289ee904fe625d92f93680a71753d03ba2ee Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:16:57 +0000 Message-Id: <69dcfad9.46b23.7e93103@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=688e289ee904fe625d92f93680a71753d03ba2ee commit 688e289ee904fe625d92f93680a71753d03ba2ee Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-11 18:38:41 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 14:15:01 +0000 ifconfig: Add support for geneve (netlink) This implementation is netlink only Differential Revision: https://reviews.freebsd.org/D55184 --- lib/libifconfig/libifconfig.c | 4 +- sbin/ifconfig/Makefile | 1 + sbin/ifconfig/ifgeneve.c | 889 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 893 insertions(+), 1 deletion(-) diff --git a/lib/libifconfig/libifconfig.c b/lib/libifconfig/libifconfig.c index f844ae235a71..bc0fcb6021b2 100644 --- a/lib/libifconfig/libifconfig.c +++ b/lib/libifconfig/libifconfig.c @@ -562,7 +562,9 @@ ifconfig_create_interface(ifconfig_handle_t *h, const char *name, char **ifname) (strncmp(name, "vlan", strlen("vlan")) == 0) || (strncmp(name, "vxlan", - strlen("vxlan")) == 0)) { + strlen("vxlan")) == 0) || + (strncmp(name, "geneve", + strlen("geneve")) == 0)) { h->error.errtype = OTHER; h->error.errcode = ENOSYS; return (-1); diff --git a/sbin/ifconfig/Makefile b/sbin/ifconfig/Makefile index b777d875f966..cc518693c2f5 100644 --- a/sbin/ifconfig/Makefile +++ b/sbin/ifconfig/Makefile @@ -30,6 +30,7 @@ SRCS+= ifmedia.c # SIOC[GS]IFMEDIA support SRCS+= iffib.c # non-default FIB support SRCS+= ifvlan.c # SIOC[GS]ETVLAN support SRCS+= ifvxlan.c # VXLAN support +SRCS+= ifgeneve.c # GENEVE support SRCS+= ifgre.c # GRE keys etc SRCS+= ifgif.c # GIF reversed header workaround SRCS+= ifipsec.c # IPsec VTI diff --git a/sbin/ifconfig/ifgeneve.c b/sbin/ifconfig/ifgeneve.c new file mode 100644 index 000000000000..aac8c81a3b10 --- /dev/null +++ b/sbin/ifconfig/ifgeneve.c @@ -0,0 +1,889 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025-2026 Pouria Mousavizadeh Tehrani + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "ifconfig.h" +#include "ifconfig_netlink.h" + +struct nl_parsed_geneve { + /* essential */ + uint32_t ifla_vni; + uint16_t ifla_proto; + struct sockaddr *ifla_local; + struct sockaddr *ifla_remote; + uint16_t ifla_local_port; + uint16_t ifla_remote_port; + + /* optional */ + struct ifla_geneve_port_range *ifla_port_range; + enum ifla_geneve_df ifla_df; + uint8_t ifla_ttl; + bool ifla_ttl_inherit; + bool ifla_dscp_inherit; + bool ifla_external; + + /* l2 specific */ + bool ifla_ftable_learn; + bool ifla_ftable_flush; + uint32_t ifla_ftable_max; + uint32_t ifla_ftable_timeout; + uint32_t ifla_ftable_count; + uint32_t ifla_ftable_nospace; + uint32_t ifla_ftable_lock_upgrade_failed; + + /* multicast specific */ + char *ifla_mc_ifname; + uint32_t ifla_mc_ifindex; + + /* csum info */ + uint64_t ifla_stats_txcsum; + uint64_t ifla_stats_tso; + uint64_t ifla_stats_rxcsum; +}; + +static struct geneve_params gnvp = { + .ifla_proto = GENEVE_PROTO_ETHER, +}; + +static int +get_proto(const char *cp, uint16_t *valp) +{ + uint16_t val; + + if (!strcmp(cp, "l2")) + val = GENEVE_PROTO_ETHER; + else if (!strcmp(cp, "l3")) + val = GENEVE_PROTO_INHERIT; + else + return (-1); + + *valp = val; + return (0); +} + +static int +get_val(const char *cp, u_long *valp) +{ + char *endptr; + u_long val; + + errno = 0; + val = strtoul(cp, &endptr, 0); + if (cp[0] == '\0' || endptr[0] != '\0' || errno == ERANGE) + return (-1); + + *valp = val; + return (0); +} + +static int +get_df(const char *cp, enum ifla_geneve_df *valp) +{ + enum ifla_geneve_df df; + + if (!strcmp(cp, "set")) + df = IFLA_GENEVE_DF_SET; + else if (!strcmp(cp, "inherit")) + df = IFLA_GENEVE_DF_INHERIT; + else if (!strcmp(cp, "unset")) + df = IFLA_GENEVE_DF_UNSET; + else + return (-1); + + *valp = df; + return (0); +} + +static bool +is_multicast(struct addrinfo *ai) +{ +#if (defined INET || defined INET6) + struct sockaddr *sa; + sa = ai->ai_addr; +#endif + + switch (ai->ai_family) { +#ifdef INET + case AF_INET: { + struct sockaddr_in *sin = satosin(sa); + + return (IN_MULTICAST(ntohl(sin->sin_addr.s_addr))); + } +#endif +#ifdef INET6 + case AF_INET6: { + struct sockaddr_in6 *sin6 = satosin6(sa); + + return (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)); + } +#endif + default: + errx(1, "address family not supported"); + } +} + +/* + * geneve mode is read-only after creation, + * therefore there is no need for separate netlink implementation + */ +static void +setgeneve_mode_clone(if_ctx *ctx __unused, const char *arg, int dummy __unused) +{ + uint16_t val; + + if (get_proto(arg, &val) < 0) + errx(1, "invalid inner protocol: %s", arg); + + gnvp.ifla_proto = val; +} + +struct nla_geneve_info { + const char *kind; + struct nl_parsed_geneve data; +}; + +struct nla_geneve_link { + uint32_t ifi_index; + struct nla_geneve_info linkinfo; +}; + +static inline void +geneve_nl_init(if_ctx *ctx, struct snl_writer *nw, uint32_t flags) +{ + struct nlmsghdr *hdr; + + snl_init_writer(ctx->io_ss, nw); + hdr = snl_create_msg_request(nw, NL_RTM_NEWLINK); + hdr->nlmsg_flags |= flags; + snl_reserve_msg_object(nw, struct ifinfomsg); + snl_add_msg_attr_string(nw, IFLA_IFNAME, ctx->ifname); +} + +static inline void +geneve_nl_fini(if_ctx *ctx, struct snl_writer *nw) +{ + struct nlmsghdr *hdr; + struct snl_errmsg_data errmsg = {}; + + hdr = snl_finalize_msg(nw); + if (hdr == NULL || !snl_send_message(ctx->io_ss, hdr)) + err(1, "unable to send netlink message"); + + if (!snl_read_reply_code(ctx->io_ss, hdr->nlmsg_seq, &errmsg)) + errx(errmsg.error, "%s", errmsg.error_str); +} + +#define _OUT(_field) offsetof(struct nl_parsed_geneve, _field) +static const struct snl_attr_parser nla_geneve_linkinfo_data[] = { + { .type = IFLA_GENEVE_ID, .off = _OUT(ifla_vni), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_PROTOCOL, .off = _OUT(ifla_proto), .cb = snl_attr_get_uint16 }, + { .type = IFLA_GENEVE_LOCAL, .off = _OUT(ifla_local), .cb = snl_attr_get_ip }, + { .type = IFLA_GENEVE_REMOTE, .off = _OUT(ifla_remote), .cb = snl_attr_get_ip }, + { .type = IFLA_GENEVE_LOCAL_PORT, .off = _OUT(ifla_local_port), .cb = snl_attr_get_uint16 }, + { .type = IFLA_GENEVE_PORT, .off = _OUT(ifla_remote_port), .cb = snl_attr_get_uint16 }, + { .type = IFLA_GENEVE_PORT_RANGE, .off = _OUT(ifla_port_range), .cb = snl_attr_dup_struct }, + { .type = IFLA_GENEVE_DF, .off = _OUT(ifla_df), .cb = snl_attr_get_uint8 }, + { .type = IFLA_GENEVE_TTL, .off = _OUT(ifla_ttl), .cb = snl_attr_get_uint8 }, + { .type = IFLA_GENEVE_TTL_INHERIT, .off = _OUT(ifla_ttl_inherit), .cb = snl_attr_get_bool }, + { .type = IFLA_GENEVE_DSCP_INHERIT, .off = _OUT(ifla_dscp_inherit), .cb = snl_attr_get_bool }, + { .type = IFLA_GENEVE_COLLECT_METADATA, .off = _OUT(ifla_external), .cb = snl_attr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_LEARN, .off = _OUT(ifla_ftable_learn), .cb = snl_attr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_FLUSH, .off = _OUT(ifla_ftable_flush), .cb = snl_attr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_MAX, .off = _OUT(ifla_ftable_max), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_FTABLE_TIMEOUT, .off = _OUT(ifla_ftable_timeout), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_FTABLE_COUNT, .off = _OUT(ifla_ftable_count), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_FTABLE_NOSPACE_CNT, .off = _OUT(ifla_ftable_nospace), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_FTABLE_LOCK_UP_FAIL_CNT, .off = _OUT(ifla_ftable_lock_upgrade_failed), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_MC_IFNAME, .off = _OUT(ifla_mc_ifname), .cb = snl_attr_get_string }, + { .type = IFLA_GENEVE_MC_IFINDEX, .off = _OUT(ifla_mc_ifindex), .cb = snl_attr_get_uint32 }, + { .type = IFLA_GENEVE_TXCSUM_CNT, .off = _OUT(ifla_stats_txcsum), .cb = snl_attr_get_uint64 }, + { .type = IFLA_GENEVE_TSO_CNT, .off = _OUT(ifla_stats_tso), .cb = snl_attr_get_uint64 }, + { .type = IFLA_GENEVE_RXCSUM_CNT, .off = _OUT(ifla_stats_rxcsum), .cb = snl_attr_get_uint64 }, +}; +#undef _OUT +SNL_DECLARE_ATTR_PARSER(geneve_linkinfo_data_parser, nla_geneve_linkinfo_data); + +#define _OUT(_field) offsetof(struct nla_geneve_info, _field) +static const struct snl_attr_parser ap_geneve_linkinfo[] = { + { .type = IFLA_INFO_KIND, .off = _OUT(kind), .cb = snl_attr_get_string }, + { .type = IFLA_INFO_DATA, .off = _OUT(data), + .arg = &geneve_linkinfo_data_parser, .cb = snl_attr_get_nested }, +}; +#undef _OUT +SNL_DECLARE_ATTR_PARSER(geneve_linkinfo_parser, ap_geneve_linkinfo); + +#define _IN(_field) offsetof(struct ifinfomsg, _field) +#define _OUT(_field) offsetof(struct nla_geneve_link, _field) +static const struct snl_attr_parser ap_geneve_link[] = { + { .type = IFLA_LINKINFO, .off = _OUT(linkinfo), + .arg = &geneve_linkinfo_parser, .cb = snl_attr_get_nested }, +}; + +static const struct snl_field_parser fp_geneve_link[] = { + { .off_in = _IN(ifi_index), .off_out = _OUT(ifi_index), .cb = snl_field_get_uint32 }, +}; +#undef _IN +#undef _OUT +SNL_DECLARE_PARSER(geneve_parser, struct ifinfomsg, fp_geneve_link, ap_geneve_link); + +static const struct snl_hdr_parser *all_parsers[] = { + &geneve_linkinfo_data_parser, + &geneve_linkinfo_parser, + &geneve_parser, +}; + +static void +geneve_status_nl(if_ctx *ctx) +{ + struct snl_writer nw; + struct nlmsghdr *hdr; + struct snl_errmsg_data errmsg; + struct nla_geneve_link geneve_link; + char src[INET6_ADDRSTRLEN], dst[INET6_ADDRSTRLEN]; + struct sockaddr *lsa, *rsa; + int mc; + bool ipv6 = false; + + if (strncmp(ctx->ifname, "geneve", sizeof("geneve") - 1) != 0) + return; + + snl_init_writer(ctx->io_ss, &nw); + hdr = snl_create_msg_request(&nw, NL_RTM_GETLINK); + hdr->nlmsg_flags |= NLM_F_DUMP; + snl_reserve_msg_object(&nw, struct ifinfomsg); + snl_add_msg_attr_string(&nw, IFLA_IFNAME, ctx->ifname); + + if (!(hdr = snl_finalize_msg(&nw)) || (!snl_send_message(ctx->io_ss, hdr))) + return; + + hdr = snl_read_reply(ctx->io_ss, hdr->nlmsg_seq); + if (hdr->nlmsg_type != NL_RTM_NEWLINK) { + if (!snl_parse_errmsg(ctx->io_ss, hdr, &errmsg)) + errx(EINVAL, "(NETLINK)"); + if (errmsg.error_str != NULL) + errx(errmsg.error, "(NETLINK) %s", errmsg.error_str); + } + + if (!snl_parse_nlmsg(ctx->io_ss, hdr, &geneve_parser, &geneve_link)) + return; + + struct nla_geneve_info geneve_info = geneve_link.linkinfo; + struct nl_parsed_geneve geneve_data = geneve_info.data; + + printf("\tgeneve mode: "); + switch (geneve_data.ifla_proto) { + case GENEVE_PROTO_INHERIT: + printf("l3"); + break; + case GENEVE_PROTO_ETHER: + default: + printf("l2"); + break; + } + + printf("\n\tgeneve config:\n"); + /* Just report nothing if the network identity isn't set yet. */ + if (geneve_data.ifla_vni >= GENEVE_VNI_MAX) { + printf("\t\tvirtual network identifier (vni): not configured\n"); + return; + } + + lsa = geneve_data.ifla_local; + rsa = geneve_data.ifla_remote; + + if ((lsa == NULL) || + (getnameinfo(lsa, lsa->sa_len, src, sizeof(src), + NULL, 0, NI_NUMERICHOST) != 0)) + src[0] = '\0'; + if ((rsa == NULL) || + (getnameinfo(rsa, rsa->sa_len, dst, sizeof(dst), + NULL, 0, NI_NUMERICHOST) != 0)) + dst[0] = '\0'; + else { + ipv6 = rsa->sa_family == AF_INET6; + if (!ipv6) { + struct sockaddr_in *sin = satosin(rsa); + mc = IN_MULTICAST(ntohl(sin->sin_addr.s_addr)); + } else { + struct sockaddr_in6 *sin6 = satosin6(rsa); + mc = IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr); + } + } + + printf("\t\tvirtual network identifier (vni): %d", geneve_data.ifla_vni); + if (src[0] != '\0') + printf("\n\t\tlocal: %s%s%s:%u", ipv6 ? "[" : "", src, ipv6 ? "]" : "", + geneve_data.ifla_local_port); + if (dst[0] != '\0') { + printf("\n\t\t%s: %s%s%s:%u", mc ? "group" : "remote", ipv6 ? "[" : "", + dst, ipv6 ? "]" : "", geneve_data.ifla_local_port); + if (mc) + printf(", dev: %s", geneve_data.ifla_mc_ifname); + } + + if (ctx->args->verbose) { + printf("\n\t\tportrange: %u-%u", + geneve_data.ifla_port_range->low, + geneve_data.ifla_port_range->high); + + if (geneve_data.ifla_ttl_inherit) + printf(", ttl: inherit"); + else + printf(", ttl: %d", geneve_data.ifla_ttl); + + if (geneve_data.ifla_dscp_inherit) + printf(", dscp: inherit"); + + if (geneve_data.ifla_df == IFLA_GENEVE_DF_INHERIT) + printf(", df: inherit"); + else if (geneve_data.ifla_df == IFLA_GENEVE_DF_SET) + printf(", df: set"); + else if (geneve_data.ifla_df == IFLA_GENEVE_DF_UNSET) + printf(", df: unset"); + + if (geneve_data.ifla_external) + printf(", externally controlled"); + + if (geneve_data.ifla_proto == GENEVE_PROTO_ETHER) { + printf("\n\t\tftable mode: %slearning", + geneve_data.ifla_ftable_learn ? "" : "no"); + printf(", count: %d, max: %d, timeout: %d", + geneve_data.ifla_ftable_count, + geneve_data.ifla_ftable_max, + geneve_data.ifla_ftable_timeout); + printf(", nospace: %u", + geneve_data.ifla_ftable_nospace); + } + + printf("\n\t\tstats: tso %lu, txcsum %lu, rxcsum %lu", + geneve_data.ifla_stats_tso, + geneve_data.ifla_stats_txcsum, + geneve_data.ifla_stats_rxcsum); + } + + putchar('\n'); +} + + +static void +geneve_create_nl(if_ctx *ctx, struct ifreq *ifr) +{ + struct snl_writer nw = {}; + struct nlmsghdr *hdr; + int off, off2; + + snl_init_writer(ctx->io_ss, &nw); + hdr = snl_create_msg_request(&nw, RTM_NEWLINK); + hdr->nlmsg_flags |= (NLM_F_CREATE | NLM_F_EXCL); + snl_reserve_msg_object(&nw, struct ifinfomsg); + snl_add_msg_attr_string(&nw, IFLA_IFNAME, ifr->ifr_name); + + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + snl_add_msg_attr_u16(&nw, IFLA_GENEVE_PROTOCOL, gnvp.ifla_proto); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_vni_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + if (get_val(arg, &val) < 0 || val >= GENEVE_VNI_MAX) + errx(1, "invalid network identifier: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + snl_add_msg_attr_u32(&nw, IFLA_GENEVE_ID, val); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_local_nl(if_ctx *ctx, const char *addr, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + struct addrinfo *ai; + const struct sockaddr *sa; + int error; + + if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) + errx(1, "error in parsing local address string: %s", + gai_strerror(error)); + + if (is_multicast(ai)) + errx(1, "local address cannot be multicast"); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + sa = ai->ai_addr; + snl_add_msg_attr_ip(&nw, IFLA_GENEVE_LOCAL, sa); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_remote_nl(if_ctx *ctx, const char *addr, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + struct addrinfo *ai; + const struct sockaddr *sa; + int error; + + if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) + errx(1, "error in parsing remote address string: %s", + gai_strerror(error)); + + if (is_multicast(ai)) + errx(1, "remote address cannot be multicast"); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + sa = ai->ai_addr; + snl_add_msg_attr_ip(&nw, IFLA_GENEVE_REMOTE, sa); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_group_nl(if_ctx *ctx, const char *addr, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + struct addrinfo *ai; + struct sockaddr *sa; + int error; + + if ((error = getaddrinfo(addr, NULL, NULL, &ai)) != 0) + errx(1, "error in parsing local address string: %s", + gai_strerror(error)); + + if (!is_multicast(ai)) + errx(1, "group address must be multicast"); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + sa = ai->ai_addr; + snl_add_msg_attr_ip(&nw, IFLA_GENEVE_REMOTE, sa); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + + +static void +setgeneve_local_port_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + if (get_val(arg, &val) < 0 || val >= UINT16_MAX) + errx(1, "invalid local port: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_u16(&nw, IFLA_GENEVE_LOCAL_PORT, val); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_remote_port_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + if (get_val(arg, &val) < 0 || val >= UINT16_MAX) + errx(1, "invalid remote port: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_u16(&nw, IFLA_GENEVE_PORT, val); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_port_range_nl(if_ctx *ctx, const char *arg1, const char *arg2) +{ + struct snl_writer nw = {}; + int off, off2; + u_long min, max; + + if (get_val(arg1, &min) < 0 || min >= UINT16_MAX) + errx(1, "invalid port range minimum: %s", arg1); + if (get_val(arg2, &max) < 0 || max >= UINT16_MAX) + errx(1, "invalid port range maximum: %s", arg2); + if (max < min) + errx(1, "invalid port range"); + + const struct ifla_geneve_port_range port_range = { + .low = min, + .high = max + }; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr(&nw, IFLA_GENEVE_PORT_RANGE, + sizeof(port_range), (const void *)&port_range); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_timeout_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + if (get_val(arg, &val) < 0 || (val & ~0xFFFFFFFF) != 0) + errx(1, "invalid timeout value: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_u32(&nw, IFLA_GENEVE_FTABLE_TIMEOUT, val); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_maxaddr_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + if (get_val(arg, &val) < 0 || (val & ~0xFFFFFFFF) != 0) + errx(1, "invalid maxaddr value: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_u32(&nw, IFLA_GENEVE_FTABLE_MAX, val); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_dev_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_string(&nw, IFLA_GENEVE_MC_IFNAME, arg); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_ttl_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + u_long val; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + if ((get_val(arg, &val) < 0 || val > 256) == 0) { + snl_add_msg_attr_u8(&nw, IFLA_GENEVE_TTL, val); + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_TTL_INHERIT, false); + } else if (!strcmp(arg, "inherit")) { + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_TTL_INHERIT, true); + } else + errx(1, "invalid TTL value: %s", arg); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_df_nl(if_ctx *ctx, const char *arg, int dummy __unused) +{ + struct snl_writer nw = {}; + int off, off2; + enum ifla_geneve_df df; + + if (get_df(arg, &df) < 0) + errx(1, "invalid df value: %s", arg); + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_u8(&nw, IFLA_GENEVE_DF, df); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_inherit_dscp_nl(if_ctx *ctx, const char *arg __unused, int d) +{ + struct snl_writer nw = {}; + int off, off2; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_DSCP_INHERIT, d != 0); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_learn_nl(if_ctx *ctx, const char *arg __unused, int d) +{ + struct snl_writer nw = {}; + int off, off2; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_FTABLE_LEARN, d != 0); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_flush_nl(if_ctx *ctx, const char *val __unused, int d) +{ + struct snl_writer nw = {}; + int off, off2; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_FTABLE_FLUSH, d != 0); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static void +setgeneve_external_nl(if_ctx *ctx, const char *val __unused, int d) +{ + struct snl_writer nw = {}; + int off, off2; + + geneve_nl_init(ctx, &nw, 0); + off = snl_add_msg_attr_nested(&nw, IFLA_LINKINFO); + snl_add_msg_attr_string(&nw, IFLA_INFO_KIND, "geneve"); + + off2 = snl_add_msg_attr_nested(&nw, IFLA_INFO_DATA); + + snl_add_msg_attr_bool(&nw, IFLA_GENEVE_COLLECT_METADATA, d != 0); + + snl_end_attr_nested(&nw, off2); + snl_end_attr_nested(&nw, off); + + geneve_nl_fini(ctx, &nw); +} + +static struct cmd geneve_cmds[] = { + + DEF_CLONE_CMD_ARG("genevemode", setgeneve_mode_clone), + + DEF_CMD_ARG("geneveid", setgeneve_vni_nl), + DEF_CMD_ARG("genevelocal", setgeneve_local_nl), + DEF_CMD_ARG("geneveremote", setgeneve_remote_nl), + DEF_CMD_ARG("genevegroup", setgeneve_group_nl), + DEF_CMD_ARG("genevelocalport", setgeneve_local_port_nl), + DEF_CMD_ARG("geneveremoteport", setgeneve_remote_port_nl), + DEF_CMD_ARG2("geneveportrange", setgeneve_port_range_nl), + DEF_CMD_ARG("genevetimeout", setgeneve_timeout_nl), + DEF_CMD_ARG("genevemaxaddr", setgeneve_maxaddr_nl), + DEF_CMD_ARG("genevedev", setgeneve_dev_nl), + DEF_CMD_ARG("genevettl", setgeneve_ttl_nl), + DEF_CMD_ARG("genevedf", setgeneve_df_nl), + DEF_CMD("genevedscpinherit", 1, setgeneve_inherit_dscp_nl), + DEF_CMD("-genevedscpinherit", 0, setgeneve_inherit_dscp_nl), + DEF_CMD("genevelearn", 1, setgeneve_learn_nl), + DEF_CMD("-genevelearn", 0, setgeneve_learn_nl), + DEF_CMD("geneveflushall", 0, setgeneve_flush_nl), + DEF_CMD("geneveflush", 1, setgeneve_flush_nl), + DEF_CMD("geneveexternal", 1, setgeneve_external_nl), + DEF_CMD("-geneveexternal", 0, setgeneve_external_nl), + + DEF_CMD_SARG("genevehwcsum", IFCAP2_GENEVE_HWCSUM_NAME, + setifcapnv), + DEF_CMD_SARG("-genevehwcsum", "-"IFCAP2_GENEVE_HWCSUM_NAME, + setifcapnv), + DEF_CMD_SARG("genevehwtso", IFCAP2_GENEVE_HWTSO_NAME, + setifcapnv), + DEF_CMD_SARG("-genevehwtso", "-"IFCAP2_GENEVE_HWTSO_NAME, + setifcapnv), +}; + +static struct afswtch af_geneve = { + .af_name = "af_geneve", + .af_af = AF_UNSPEC, + .af_other_status = geneve_status_nl, +}; + +static __constructor void +geneve_ctor(void) +{ + size_t i; + + for (i = 0; i < nitems(geneve_cmds); i++) + cmd_register(&geneve_cmds[i]); + af_register(&af_geneve); + clone_setdefcallback_prefix("geneve", geneve_create_nl); + SNL_VERIFY_PARSERS(all_parsers); +} From nobody Mon Apr 13 14:16:59 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 4fvTxR5ZDvz6ZDpj for ; Mon, 13 Apr 2026 14:16:59 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTxR1RhBz3nd5 for ; Mon, 13 Apr 2026 14:16:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089819; 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=KzS2cqueHfBO9CXukMKHDY47lXdiDat2nn5f1zotKcg=; b=LGq7eZ+c3RcOwICi/j0Xrrlj+KDn27qYx5NxH0CKmNMN3tzoQp1OGc2v6/jSej9l0w1cZx 1UUj0xJ9RpqU6sjllJoqlyi1Bh5YvhjLHV58TAzKJ5cHIAu1iazbOQeWnD19kjqV1/CfRJ u/YSBqPmEDN9F0hjxJtE32f+d3loqN/toE4bnV2LtUapi4nE9IPg35F4au6PHyRoIbR4Vy 5Rnr/Xb9xgbqFDj9fIx63S+QirNFN4Z09vXmG9CkYVEm0YFBRKGI7lDKyXIwml9R56e019 kLlQJSw0soN/cizKjYkV9toMbtohoSKyQD4MN+6vK5f03taLaB7hAdQQf42C4Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089819; a=rsa-sha256; cv=none; b=R2JbH1uyAGYtM10lB515unJamxQRjNCGnwGEPGDi+rHA/BB7YQZ+yashF5fu34PZ5GHjJn ApxXYaGFkTHoAPEsD3X/wN3wWUXWqGy8v441WmuZ7G4DkWcIWwsDDL2kGJFzlWpyQLoYZe lRXAvFvcIJ0DdSGX2i0GaIIhFJ0sS4syVdllgwSKXqgddcon4vD1JaLcSYl5pXZ1at5ZPc fOzMM07vstM6S5oGcaxpJUTKRh2zcsWHQsIh/Gg7/Rt8mlaQo5wc8/62S9YGTv1UEU5K/k S0gOCANJGtiFo5Q6xlN97qKMcd2oBCnNd/07NY3KxTqyXEU2IkirtjcmwjdLLA== 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=1776089819; 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=KzS2cqueHfBO9CXukMKHDY47lXdiDat2nn5f1zotKcg=; b=iFEVzWr1YIXGhbwa8adm3cb640lP7b5g41fICVF2zvJku2GMAX1aSgfEmALxR0fd0SzU1y wbIgfK0Tvm+FUVaCc6OjykKRZJKhQ88qqQY5LGENV5g/GJ16boE9D5iHEOMAzDvmpMZMGr KECcHzq8Q+4EyPNFlvdJ0xvUuT+Bd1A2ZJGCROnfB99DSL8OUmTIBOUn1VV1aOQF4XlLXY FVoDXC3kkASe8ELp2rINYEzyh9nyHAQLH/SkpaEo7DZkaeHgBBApYI3zUg7gCaV7H5yJlc UtjLc6RuNeWFK5ts90qjRgwz5cHv8V1G5vYQ73jO2Uc6wGa4rosn0J3HTEfPow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTxR0qc6z16Qr for ; Mon, 13 Apr 2026 14:16:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46269 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:16:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: aa9f669d09a7 - main - geneve: Add tests for geneve 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aa9f669d09a7a193d470477398815f45a42c0270 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:16:59 +0000 Message-Id: <69dcfadb.46269.5b10c7b2@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=aa9f669d09a7a193d470477398815f45a42c0270 commit aa9f669d09a7a193d470477398815f45a42c0270 Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-11 18:45:08 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 14:15:04 +0000 geneve: Add tests for geneve Add tests for each combinations of geneve modes, address families and multicast. Differential Revision: https://reviews.freebsd.org/D55183 --- tests/ci/tools/ci.conf | 1 + tests/sys/net/Makefile | 1 + tests/sys/net/if_geneve.sh | 1000 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1002 insertions(+) diff --git a/tests/ci/tools/ci.conf b/tests/ci/tools/ci.conf index 2302fc479a47..5ddb3476eb26 100644 --- a/tests/ci/tools/ci.conf +++ b/tests/ci/tools/ci.conf @@ -74,6 +74,7 @@ kld_list="\${kld_list} fusefs" # sys/fs/fusefs kld_list="\${kld_list} if_bridge" # sys/net/if_bridge_test kld_list="\${kld_list} if_enc" # sys/netpfil/pf kld_list="\${kld_list} if_epair" # sys/net/if_epair_test +kld_list="\${kld_list} if_geneve" # sys/net/if_geneve kld_list="\${kld_list} if_ovpn" # sys/net/if_ovpn kld_list="\${kld_list} if_stf" # sys/net/if_stf kld_list="\${kld_list} ipdivert" # sys/netinet (loads ipdivert) diff --git a/tests/sys/net/Makefile b/tests/sys/net/Makefile index e390c6e8059d..6dcc23b49b67 100644 --- a/tests/sys/net/Makefile +++ b/tests/sys/net/Makefile @@ -15,6 +15,7 @@ ATF_TESTS_SH+= if_stf ATF_TESTS_SH+= if_tun_test ATF_TESTS_SH+= if_vlan ATF_TESTS_SH+= if_wg +ATF_TESTS_SH+= if_geneve TESTS_SUBDIRS+= bpf TESTS_SUBDIRS+= if_ovpn diff --git a/tests/sys/net/if_geneve.sh b/tests/sys/net/if_geneve.sh new file mode 100644 index 000000000000..7eb2649b44a9 --- /dev/null +++ b/tests/sys/net/if_geneve.sh @@ -0,0 +1,1000 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2025-2026 Pouria Mousavizadeh Tehrani +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. + +. $(atf_get_srcdir)/../common/vnet.subr + +atf_test_case "ether_ipv4" "cleanup" +ether_ipv4_head() +{ + atf_set descr 'Create a geneve(4) l2 tunnel over an ipv4 underlay using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv4_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 +} + +ether_ipv4_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv6" "cleanup" +ether_ipv6_head() +{ + atf_set descr 'Create a geneve(4) l2 tunnel over an ipv6 underlay using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv6_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 +} + +ether_ipv6_cleanup() +{ + vnet_cleanup +} + +atf_test_case "inherit_ipv4" "cleanup" +inherit_ipv4_head() +{ + atf_set descr 'Create a geneve(4) l3 tunnel over an ipv4 underlay using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv4_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=2 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l3 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l3 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 +} + +inherit_ipv4_cleanup() +{ + vnet_cleanup +} + +atf_test_case "inherit_ipv6" "cleanup" +inherit_ipv6_head() +{ + atf_set descr 'Create a geneve(4) l3 tunnel over an ipv6 underlay using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv6_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l3 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l3 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 +} + +inherit_ipv6_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv6_blind_options" "cleanup" +ether_ipv6_blind_options_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve options' + atf_set require.user root +} + +ether_ipv6_blind_options_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevemaxaddr 1000 + atf_check -s exit:0 -o match:"max: 1000" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevetimeout 1000 + atf_check -s exit:0 -o match:"timeout: 1000" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevelearn + atf_check -s exit:0 -o match:"mode: nolearning" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevelearn + atf_check -s exit:0 -o match:" learning" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o match:"count: 1" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflush + atf_check -s exit:0 -o match:"count: 0" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflushall + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl inherit + atf_check -s exit:0 -o match:"ttl: inherit" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl 1 + atf_check -s exit:0 -o match:"ttl: 1" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf set up + atf_check -s exit:0 -o match:"df: set" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf inherit up + atf_check -s exit:0 -o match:"df: inherit" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf unset up + atf_check -s exit:0 -o match:"df: unset" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevedscpinherit + atf_check -s exit:0 -o match:"dscp: inherit" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevedscpinherit + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal + atf_check -s exit:0 -o match:" external" ifconfig -j genevetest1 -v geneve1 + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 down geneveportrange 11000 62000 up + atf_check -s exit:0 -o match:"portrange: 11000-62000" ifconfig -j genevetest1 -v geneve1 + + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 +} + +ether_ipv6_blind_options_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv6_external" "cleanup" +ether_ipv6_external_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve collect metadata' + atf_set require.user root +} + +ether_ipv6_external_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 + local v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal + atf_check -s exit:16 -e ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal + atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up + +} + +ether_ipv6_external_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv4_multicast" "cleanup" +ether_ipv4_multicast_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv4_multicast_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + mc_group=239.0.0.1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip_mroute; then + atf_skip "This test requires ip_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + # manually add the multicast routes to epairs + route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a + route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint1} \ + genevegroup ${mc_group} genevedev ${epair}a up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint2} \ + genevegroup ${mc_group} genevedev ${epair}b up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +ether_ipv4_multicast_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv6_multicast" "cleanup" +ether_ipv6_multicast_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv6_multicast_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + mc_group=ff08::db8:0:1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip6_mroute; then + atf_skip "This test requires ip6_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + # manually add the multicast routes to epairs + route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a + route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint1} \ + genevegroup ${mc_group} genevedev ${epair}a up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint2} \ + genevegroup ${mc_group} genevedev ${epair}b up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +ether_ipv6_multicast_cleanup() +{ + vnet_cleanup +} + +atf_test_case "ether_ipv4_multicast_without_dev" "cleanup" +ether_ipv4_multicast_without_dev_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv4_multicast_without_dev_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + mc_group=239.0.0.1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip_mroute; then + atf_skip "This test requires ip_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + # manually add the multicast routes to epairs + route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a + route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +ether_ipv4_multicast_without_dev_cleanup() +{ + vnet_cleanup +} + + +atf_test_case "ether_ipv6_multicast_without_dev" "cleanup" +ether_ipv6_multicast_without_dev_head() +{ + atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails' + atf_set require.user root +} + +ether_ipv6_multicast_without_dev_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + mc_group=ff08::db8:0:1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip6_mroute; then + atf_skip "This test requires ip6_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + # manually add the multicast routes to epairs + route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a + route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l2 debug \ + geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +ether_ipv6_multicast_without_dev_cleanup() +{ + vnet_cleanup +} + +atf_test_case "inherit_ipv4_multicast" "cleanup" +inherit_ipv4_multicast_head() +{ + atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv4_multicast_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + mc_group=239.0.0.1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip_mroute; then + atf_skip "This test requires ip_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + # manually add the multicast routes to epairs + route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a + route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint1} \ + genevegroup ${mc_group} genevedev ${epair}a up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint2} \ + genevegroup ${mc_group} genevedev ${epair}b up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1 + atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1 + + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +inherit_ipv4_multicast_cleanup() +{ + vnet_cleanup +} + +atf_test_case "inherit_ipv6_multicast" "cleanup" +inherit_ipv6_multicast_head() +{ + atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv6_multicast_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + mc_group=ff08::db8:0:1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip6_mroute; then + atf_skip "This test requires ip6_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up + ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up + + # manually add the multicast routes to epairs + route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a + route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint1} \ + genevegroup ${mc_group} genevedev ${epair}a up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint2} \ + genevegroup ${mc_group} genevedev ${epair}b up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1 + atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1 + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + +} + +inherit_ipv6_multicast_cleanup() +{ + vnet_cleanup +} + +atf_test_case "inherit_ipv4_multicast_without_dev" "cleanup" +inherit_ipv4_multicast_without_dev_head() +{ + atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv4_multicast_without_dev_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=192.168.2.1 + endpoint2=192.168.2.2 + mc_group=239.0.0.1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi + if ! kldstat -q -m ip_mroute; then + atf_skip "This test requires ip_mroute" + fi + + vnet_init + epair=$(vnet_mkepair) + vnet_mkjail genevetest1 ${epair}a + vnet_mkjail genevetest2 ${epair}b + + ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up + ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up + + # manually add the multicast routes to epairs + route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a + route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 create genevemode l3 debug \ + geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up + + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1} + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30 + atf_check -s exit:0 -o ignore \ + ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2} + + atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1 + atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1 + + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet + atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet + + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1 + atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2 + atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1 + +} + +inherit_ipv4_multicast_without_dev_cleanup() +{ + vnet_cleanup +} + + +atf_test_case "inherit_ipv6_multicast_without_dev" "cleanup" +inherit_ipv6_multicast_without_dev_head() +{ + atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails' + atf_set require.user root +} + +inherit_ipv6_multicast_without_dev_body() +{ + local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group + local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2 + + endpoint1=3fff::1 + endpoint2=3fff::2 + mc_group=ff08::db8:0:1 + v4tunnel1=169.254.0.1 + v4tunnel2=169.254.0.2 + v6tunnel1=2001:db8::1 + v6tunnel2=2001:db8::2 + vni1=1 + + if ! kldstat -q -m if_geneve; then + atf_skip "This test requires if_geneve" + fi *** 65 LINES SKIPPED *** From nobody Mon Apr 13 14:17:00 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 4fvTxS65Dnz6ZDTc for ; Mon, 13 Apr 2026 14:17: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTxS3Bw9z3nYN for ; Mon, 13 Apr 2026 14:17:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089820; 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=76RRfpYQDk7gy/g5+BGkNopxNbUBd0deVMrWWe539PM=; b=P1OeFJ/nVh5ngfatc8kJKZ6JNsL1Ak49qjjTdgaHKVzKdtm9uBe060xTpcsuuA/QM8+NZr iEFyqvmyl+fxH5eeo8+jiTJ5rUiI0fLY+xsG/0j46QUEdt8OkXNkfZls2MJ6usZ3YTi960 yb36+WHjmVHs2KMyPKsGWwMV+rbwubNffoT4hcSQy58EgSPUiqlgKA8xc4R20ohuFIa//1 HBj8qHrnwZkeRyzNBEfoCp9gcdH7AjKpz+2X8GKQrH3JwYVeLKOSwOmAhGZUEqRb3gHBQR 4yz0XiHH33dT0sO76rp/VTkFkxsf6LfOjnuDcGPstltek66AmkzSOkaXbNaBSQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089820; a=rsa-sha256; cv=none; b=fOScEPLZpAoG4BBE3kRMyQfIfZghdxzc32H4yBUeENUAQy7iYhLzmPuavp6bDftM7K7aHi 5H55K6WQcLDB9p4Ejdnc64nffpjvjO1kY7mjZEWg25aOYPR19uIeQS1USxH57qCli1JCxc TqakUI+NFlzxtlowNjs3h3rpRdl+QnOsGRg6/5QEjbeHd+wLW6GZIuOwi74Z5vBTSdTq5m tDW3U39sdTRtL3+vCxJOAoZQipAkmep8yIFSZ7lWcofBbHFiCpmq7+pVxjMJo2gEpJmWHd HlOYSedJYmfQDriG/14i47SOrvkfTBp+lsGAjapwhMXuqAEaZAiqUaKIfmOI9Q== 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=1776089820; 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=76RRfpYQDk7gy/g5+BGkNopxNbUBd0deVMrWWe539PM=; b=ff6XvOg7lyuZazZMhcb67UcSXyCfsfULutr8+sVrriR9uVc3TbkNKgcsOS+JWPCNfL0QR+ A1PohNas8JqXFRKsVJrx6pgPxnddBslPehQZvREpx6XcQhULNtRenBtyXH30aTxxUQL61n ufbNEzjdYhe9oQooZjUcyPyZEmcyUys1im2RSV3d+Jaq5CZboz1vILNnRAba0ozrk66Q5F x1qjd+0FkB6+XTQ4h/EtVtU3BaBkCVzwRSL0JsJSR/1187UCVwNkRj4+gILh8g7qPaoDd2 LgQKOYOJ5vW6Kd/oRFDF8UBBibmXgUTt8+T+KUXMXzb5vPRg4ThV1IbbxXzi4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTxS1Xz8z16rZ for ; Mon, 13 Apr 2026 14:17:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46149 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:17:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: adecd4c4cd05 - main - geneve.4: Add geneve manual 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: adecd4c4cd05b404ff81dbfce88b772e2b754a7f Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:17:00 +0000 Message-Id: <69dcfadc.46149.2775e088@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=adecd4c4cd05b404ff81dbfce88b772e2b754a7f commit adecd4c4cd05b404ff81dbfce88b772e2b754a7f Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-11 18:51:58 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 14:15:05 +0000 geneve.4: Add geneve manual Reviewed by: ziaee, adrian Differential Revision: https://reviews.freebsd.org/D55182 --- share/man/man4/Makefile | 2 + share/man/man4/geneve.4 | 384 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 386 insertions(+) diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile index 6883cdd7d6cf..7920b2006822 100644 --- a/share/man/man4/Makefile +++ b/share/man/man4/Makefile @@ -187,6 +187,7 @@ MAN= aac.4 \ gem.4 \ genet.4 \ genetlink.4 \ + geneve.4 \ geom.4 \ geom_linux_lvm.4 \ geom_uzip.4 \ @@ -728,6 +729,7 @@ MLINKS+=fwip.4 if_fwip.4 MLINKS+=fxp.4 if_fxp.4 MLINKS+=gem.4 if_gem.4 MLINKS+=genet.4 if_genet.4 +MLINKS+=geneve.4 if_geneve.4 MLINKS+=geom.4 GEOM.4 MLINKS+=gif.4 if_gif.4 MLINKS+=gpio.4 gpiobus.4 diff --git a/share/man/man4/geneve.4 b/share/man/man4/geneve.4 new file mode 100644 index 000000000000..fdb752c0a8be --- /dev/null +++ b/share/man/man4/geneve.4 @@ -0,0 +1,384 @@ +.\" +.\" Copyright (c) 2025-2026 Pouria Mousavizadeh Tehrani +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd March 31, 2026 +.Dt GENEVE 4 +.Os +.Sh NAME +.Nm geneve +.Nd Generic Network Virtualization Encapsulation interface +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Cd device geneve +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Cd if_geneve_load="YES" +.Sh DESCRIPTION +The +.Nm +driver creates a generic network virtualization tunnel interfaces +for Tentant Systems over an L3 (IP/UDP) underlay network that provides +a Layer 2 (ethernet) or Layer 3 service using +.Nm +protocol. +.Pp +This driver corresponds to RFC 8926 for format specification and by default +uses the multicast-learning-based approach for its control plane. +To provide control plane independence all of the driver-specific operations +are implemented using +.Xr rtnetlink 4 +and all the +.Xr ioctl 2 +calls are implemented using the +.Xr nv 9 +library. +Each +.Nm +interface is created at runtime using interface cloning. +This is most easily done with the +.Xr ifconfig 8 +.Cm create +command or using the +.Va cloned_interfaces +variable in +.Xr rc.conf 5 . +The interface may be removed with the +.Xr ifconfig 8 +.Cm destroy +command. +.Pp +The +.Nm +interface must be configured in either L2 or L3 mode. +An L2 +.Nm +tunnel could be used as a backplane between the virtual switches +residing in hypervisors, switches, or other appliances. +.Pp +The L3 +.Nm +tunnel provides virtualized IP forwarding service similar to IP/VRF. +.Pp +By default the +.Nm +driver creates an L2 interface that supports the usual network +.Xr ioctl 2 Ns s +and thus can be used with +.Xr ifconfig 8 +like any other Ethernet interface. +An L2 +.Nm +interface encapsulates the Ethernet frame by prepending IP/UDP and +.Nm +headers. +Thus, the encapsulated (inner) frame is able to be transmitted +over a routed, Layer 3 network to the remote host. +.Pp +The +.Nm +interface may be configured in either unicast or multicast mode. +When in unicast mode, +the interface creates a tunnel to a single remote host, +and all traffic is transmitted to that host. +When in multicast mode, +the interface joins an IP multicast group, +and receives packets sent to the group address, +and transmits packets to either the multicast group address, +or directly to the remote host if there is an appropriate +forwarding table entry. +.Pp +When the +.Nm +interface is brought up, a +.Xr udp 4 +.Xr socket 9 +is created based on the configuration, +such as the local address for unicast mode or +the group address for multicast mode, +and the listening (local) port number. +Since multiple +.Nm +interfaces may be created that either +use the same local address +or join the same group address, +and use the same port, +the driver may share a socket among multiple interfaces. +However, each interface within a socket must belong to +a unique +.Nm +segment per +.Xr vnet 9 . +The analogous +.Xr vlan 4 +configuration would be a physical interface configured as +the parent device for multiple VLAN interfaces, each with +a unique VLAN tag. +Each +.Nm +segment is identified by a 24-bit value in the +.Nm +header called the +.Dq Virtual Network Identifier , +or VNI. +This value can be set with +.Xr ifconfig 8 +.Cm geneveid +parameter. +.Pp +When configured with the +.Xr ifconfig 8 +.Cm genevelearn +parameter, the interface dynamically creates forwarding table entries +from received packets. +An entry in the forwarding table maps the inner source MAC address +to the outer remote IP address. +During transmit, the interface attempts to lookup an entry for +the encapsulated destination MAC address. +If an entry is found, the IP address in the entry is used to directly +transmit the encapsulated frame to the destination. +Otherwise, when configured in multicast mode, +the interface must flood the frame to all hosts in the group. +The maximum number of entries in the table is configurable with the +.Xr ifconfig 8 +.Cm genevemaxaddr +command. +Stale entries in the table are periodically pruned. +The timeout is configurable with the +.Xr ifconfig 8 +.Cm genevetimeout +command. +.Ss MTU +Since the +.Nm +interface encapsulates the Ethernet frame with an IP, UDP, and +.Nm +header, the resulting frame may be larger than the MTU of the +physical network. +The +.Nm +specification recommends the physical network MTU be configured +to use jumbo frames to accommodate the encapsulated frame size. +.Pp +By default, the +.Nm +driver sets its MTU to usual ethernet MTU of 1500 bytes, reduced by +the size of geneve headers prepended which is depends on +.Cm genevemode . +.Pp +Alternatively, the +.Xr ifconfig 8 +.Cm mtu +command may be used to set the fixed MTU size on the +.Nm +interface to allow the encapsulated frame to fit in the +current MTU of the physical network. +If the +.Cm mtu +command was used, system no longer adjust the +.Nm +interface MTU on routing or address changes. +.Ss Hop Limit +TTL value of +.Nm +interface can change by using the +.Xr ifconfig 8 +.Cm genevettl +command and it also can be inherited from carrying packet. +You can set the +.Cm genevettl +to a number value or +.Cm inherit +option to be inherited at the encapsulation and decapsulation point. +.Ss Traffic Class +Just like the TTL value, ToS value can be inherited at the encapsulation point +using +.Xr ifconfig 8 +.Cm genevedscpinherit . +As defined in RFC 8926, ECN value follows the RFC 6040 for both ingress and +egress traffic. +.Ss Don't Fragment +To make sure fragmentation does not happing during transmission, you can +set the +.Xr ifconfig 8 +.Cm genevedf +value to +.Cm set +value which sets the DF bit on IPv4 header and IP_DONTFRAG option on both IPv4 +and IPv6 sockets. +Similar to other options, it can be set to +.Cm inherit +value. +.Ss Multicast +To create the +.Nm +interface with multicast underlay, one must use +.Xr ifconfig 8 +.Cm genevegroup +instead of +.Cm geneveremote +and set it to a multicast address (e.g. ff08::db8:0:1, 239.0.0.1). +One can set the outbound multicast interface with +.Xr ifconfig 8 +.Cm genevedev +to bound its multicast group to specific interface. +.Pp +The +.Cm ip_mroute +kernel module for IPv4 underlay and +.Cm ip6_mroute +for IPv6 underlay must be loaded for +.Xr multicast 4 +to function. +.Sh HARDWARE +The +.Nm +driver supports hardware checksum offload (receive and transmit) and TSO on the +encapsulated traffic over physical interfaces that support these features. +The +.Nm +interface examines the +.Cm genevedev +interface, if one is specified, or the interface hosting the +.Cm genevelocal +address, and configures its capabilities based on the hardware offload +capabilities of that physical interface. +If multiple physical interfaces will transmit or receive traffic for the +.Nm +then they all must have the same hardware capabilities. +The transmit routine of a +.Nm +interface may fail with +.Er ENXIO +if an outbound physical interface does not support +an offload that the +.Nm +interface is requesting. +This can happen if there are multiple physical interfaces involved, with +different hardware capabilities, or an interface capability was disabled after +the +.Nm +interface had already started. +.Sh EXAMPLES +.Bd -literal + Host A (198.51.100.10) + +--------------------+ + | VNI 100 10.1.1.0/24| + | VNI 200 10.2.2.0/24| + +---------+----------+ + | + (198.51.100.0/24) + | + +---------------v---------------+ + | Host B (203.0.113.1) | + | +------+-------+ | + | geneve0| |geneve1| + | +------v----+ +-----v-----+ | + | | bridge0 | | bridge1 | | + | | (VNI 100) | | (VNI 200) | | + | +------+----+ +----+------+ | + | | | | + +--------v-------------v--------+ + epair0b| |epair1b + +------+----+ +----+------+ + | Jail A | | Jail B | + | (10.1.1.x)| | (10.2.2.x)| + +-----------+ +-----------+ +.Ed +Assume host A has the (external) IP address 198.51.100.10 and +two internal addresses of 10.1.1.1/24 and 10.2.2.1/24, while +host B has the external address of 203.0.113.10 and two jails +with their own separate +.Xr VNET 9 . +the following commands will configure the tunnel: +.Pp +On host A, create a l2 +.Nm +interface in unicast mode: +.Bd -literal +ifconfig geneve0 create geneveid 100 genevelocal 198.51.100.10 geneveremote 203.0.113.1 +ifconfig geneve1 create geneveid 200 genevelocal 198.51.100.10 geneveremote 203.0.113.1 +.Ed +.Pp +On host B: +.Bd -literal +ifconfig geneve0 create geneveid 100 genevelocal 203.0.113.1 geneveremote 198.51.100.10 +ifconfig geneve1 create geneveid 200 genevelocal 203.0.113.1 geneveremote 198.51.100.10 +ifconfig bridge0 addm geneve0 addm epair0a +ifconfig bridge1 addm geneve1 addm epair1a +.Ed +.Pp +The example below demonstrate multicast configuration with IPv6: +.Bd -literal + ----------- VNI 42 ----------- + / \\ +2001:db8::1/64 --- Host A ------ Multicast ------- Host B --- 2001:db8::2/64 + 3fff::1 [em0] ff08::db8:1 [em0] 3fff::2 +.Ed +.Pp +Create a +.Nm +interface in multicast mode, +with the +.Cm genevelocal +address of 3fff::1, +and the +.Cm genevegroup +address of ff08::db8:0:1. +The em0 interface will be used to transmit multicast packets. +On host A: +.Bd -literal +ifconfig geneve0 create geneveid 42 genevelocal 3fff::1 genevegroup ff08::db8:1 genevedev em0 +.Ed +.Pp +On host B: +.Bd -literal +ifconfig geneve0 create geneveid 42 genevelocal 3fff::2 genevegroup ff08::db8:1 genevedev em0 +.Ed +.Pp +Once created, the +.Nm +interface can be configured with +.Xr ifconfig 8 . +.Pp +The following when placed in the file +.Pa /etc/rc.conf +will cause a geneve interface called +.Dq Li geneve0 +to be created, and will configure the interface in unicast mode. +.Bd -literal +cloned_interfaces="geneve0" +create_args_geneve0="geneveid 108 genevelocal 192.168.100.1 geneveremote 192.168.100.2" +.Ed +.Sh SEE ALSO +.Xr inet 4 , +.Xr inet6 4 , +.Xr multicast 4 , +.Xr rtnetlink 4 , +.Xr vlan 4 , +.Xr rc.conf 5 , +.Xr ifconfig 8 , +.Xr sysctl 8 +.Rs +.%A "J. Gross, Ed." +.%A "I. Gross, Ed." +.%A "T. Sridhar, Ed." +.%T "Geneve: Generic Network Virtualization Encapsulation" +.%D November 2020 +.%O "RFC 8926" +.Re +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An Seyed Pouria Mousavizadeh Tehrani Aq info@spmzt.net +.Sh BUGS +Current geneve implementation with netlink can't set geneve options +other than genevemode during interface cloning in ifconfig without +specifying the interface index. From nobody Mon Apr 13 14:16:56 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 4fvTxV4HYsz6ZDwr for ; Mon, 13 Apr 2026 14:17:02 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTxT72s7z3nbP for ; Mon, 13 Apr 2026 14:17:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089821; 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=UjUYuH+SrCdc3VRYm4nTBVBMFdygHkYSXuERpAXfWUk=; b=DTPikzVjuQrWbWdpU54ftzzIdp/UeOBeSXxAKI0O+IUV99Ala2n1BZpz6MVF6MZ/jwBcnR vJ5A0b8YKRDESZFLWw/YSjWHHZaFB3sjLRrSGoN1q4WFc3/HjQF1MAiJmsXiz+hRyQ8H4I b0A5uaXUj2hqH3w9vcnTk563wcKzsM+PJeVG5GQgwEOpNv1sJazIk93dHLCiyTtacIvBrV I+MfPhgpAd020EjMPvM3igP7afRbictcHNIUs4ndwarxAakY45qboYvhFpvTnYYZ6GA7yv 5Q9PKkmdq6zi3OkWNNlwmXO49S/yAPGpeHXKNBBtNAdkRimUJ+yfjTEvTiMiIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089822; a=rsa-sha256; cv=none; b=KXZFqaYK4rweRSRiuHEan5yQNrntRwSK/0KgeIdlHkRpDxVHjZi2u7TJfOTuRKAjcuHqEm KkeT7LUFSEV1uKx0o8PSymjbi3V+VsbwIEeFrVPCi8QJddvTjBjAUlE/Dqqxaf78G5Om41 BrPrxHHT+5bj3i8gK2TBXdoTeyCgzIxvgViZt1k8WtBHZfF6nDREmX600cY3F2qszrlH0x GM2FK+bXKjgB6dpItd2BX0ksb+hc2vM5FoGhxdwshWUd+xh7SgfLHhFDaLC/IooudBQnMa 19s40S4EOVNAF9CZdqpczm6A0npXgRc0dHsFUDl/gJj25Un/llw5Dmrc2qnO+Q== 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=1776089822; 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=UjUYuH+SrCdc3VRYm4nTBVBMFdygHkYSXuERpAXfWUk=; b=nMoKvloI9ynIVUDb/jmdO9JzDH24BMAAskhITeK49Y1X+QsLYmZIcW+U/J/JX6hbuVrDbJ b5w9qEo4d9qvU17c6qTATdsV+p/FYMBEE4VQ+PQtWhqO1zvWSv/Ku/6yRZKNmx2dz83WYg GSdgGD0Iztob3fj/c5iNP+S583zRAx1XCiFeUvLxttvh6aouwoL49ffhWaibh1TOfy/lFp NrPzvbo91Nk2j/G7l1YiV2JUOzxRMe+Km2ESZIfiwHXEpTKb7ap3WOPnn6pTkvDIzRhYUB uOrJcnDg8SJRAmi5vJHl86hY9fPt8v2Oa6a+/AOL6KzDeFrYpiC1YHoYWtOVIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTxT6C8Kz16Fb for ; Mon, 13 Apr 2026 14:17:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47191 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:16:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: e44d2e941e8e - main - if_geneve: Add Support for Geneve (RFC8926) 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:16:56 +0000 Message-Id: <69dcfad8.47191.15534965@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 commit e44d2e941e8ebd74e6a1b1fdbed83fe86671cbc6 Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-11 14:12:01 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 14:14:58 +0000 if_geneve: Add Support for Geneve (RFC8926) geneve creates a generic network virtualization tunnel interface for Tentant Systems over an L3 (IP/UDP) underlay network that provides a Layer 2 (ethernet) or Layer 3 service using the geneve protocol. This implementation is based on RFC8926. Reviewed by: glebius, adrian Discussed with: zlei, kp Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54172 --- sys/conf/NOTES | 4 + sys/conf/files | 1 + sys/kern/kern_jail.c | 1 + sys/modules/Makefile | 1 + sys/modules/if_geneve/Makefile | 7 + sys/net/if.c | 2 + sys/net/if.h | 6 +- sys/net/if_geneve.c | 3967 ++++++++++++++++++++++++++++++++++++++++ sys/net/if_geneve.h | 70 + sys/net/if_strings.h | 12 +- sys/netlink/route/interface.h | 44 + sys/sys/mbuf.h | 6 +- sys/sys/priv.h | 1 + 13 files changed, 4115 insertions(+), 7 deletions(-) diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 4dda93e2ee70..4279fae4c547 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -880,6 +880,10 @@ device vlan # frames in UDP packets according to RFC7348. device vxlan +# The `geneve' device implements the GENEVE encapsulation of virtual +# overlays according to RFC8926. +device geneve + # The `wlan' device provides generic code to support 802.11 # drivers, including host AP mode; it is MANDATORY for the wi, # and ath drivers and will eventually be required by all 802.11 drivers. diff --git a/sys/conf/files b/sys/conf/files index b44fb46ef764..99ba7cdaba33 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -4238,6 +4238,7 @@ net/if_stf.c optional stf inet inet6 net/if_tuntap.c optional tuntap net/if_vlan.c optional vlan net/if_vxlan.c optional vxlan inet | vxlan inet6 +net/if_geneve.c optional geneve inet | geneve inet6 net/ifdi_if.m optional ether pci iflib net/iflib.c optional ether pci iflib net/mp_ring.c optional ether iflib diff --git a/sys/kern/kern_jail.c b/sys/kern/kern_jail.c index 384825b7f8ac..bc80adb91cd6 100644 --- a/sys/kern/kern_jail.c +++ b/sys/kern/kern_jail.c @@ -4385,6 +4385,7 @@ prison_priv_check(struct ucred *cred, int priv) case PRIV_NET_SETIFVNET: case PRIV_NET_SETIFFIB: case PRIV_NET_OVPN: + case PRIV_NET_GENEVE: case PRIV_NET_ME: case PRIV_NET_WG: diff --git a/sys/modules/Makefile b/sys/modules/Makefile index a4100c31ef26..faedb856977c 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -169,6 +169,7 @@ SUBDIR= \ if_tuntap \ if_vlan \ if_vxlan \ + if_geneve \ ${_if_wg} \ iflib \ ${_igc} \ diff --git a/sys/modules/if_geneve/Makefile b/sys/modules/if_geneve/Makefile new file mode 100644 index 000000000000..1e65d4dbb168 --- /dev/null +++ b/sys/modules/if_geneve/Makefile @@ -0,0 +1,7 @@ +.PATH: ${SRCTOP}/sys/net + +KMOD= if_geneve +SRCS= if_geneve.c +SRCS+= opt_inet.h opt_inet6.h + +.include diff --git a/sys/net/if.c b/sys/net/if.c index 760ae94e842b..8a148ba0fd06 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -2273,6 +2273,8 @@ const struct ifcap_nv_bit_name ifcap2_nv_bit_names[] = { CAP2NV(RXTLS4), CAP2NV(RXTLS6), CAP2NV(IPSEC_OFFLOAD), + CAP2NV(GENEVE_HWCSUM), + CAP2NV(GENEVE_HWTSO), {0, NULL} }; #undef CAPNV diff --git a/sys/net/if.h b/sys/net/if.h index 1b47237e46bb..4bb6a2659ce7 100644 --- a/sys/net/if.h +++ b/sys/net/if.h @@ -255,7 +255,9 @@ struct if_data { #define IFCAP_B_RXTLS4 32 /* can do TLS receive for TCP */ #define IFCAP_B_RXTLS6 33 /* can do TLS receive for TCP6 */ #define IFCAP_B_IPSEC_OFFLOAD 34 /* inline IPSEC offload */ -#define __IFCAP_B_SIZE 35 +#define IFCAP_B_GENEVE_HWCSUM 35 /* can do IFCAN_HWCSUM on GENEVE */ +#define IFCAP_B_GENEVE_HWTSO 36 /* can do IFCAP_TSO on GENEVE */ +#define __IFCAP_B_SIZE 37 #define IFCAP_B_MAX (__IFCAP_B_MAX - 1) #define IFCAP_B_SIZE (__IFCAP_B_SIZE) @@ -299,6 +301,8 @@ struct if_data { #define IFCAP2_RXTLS4 (IFCAP_B_RXTLS4 - 32) #define IFCAP2_RXTLS6 (IFCAP_B_RXTLS6 - 32) #define IFCAP2_IPSEC_OFFLOAD (IFCAP_B_IPSEC_OFFLOAD - 32) +#define IFCAP2_GENEVE_HWCSUM (IFCAP_B_GENEVE_HWCSUM - 32) +#define IFCAP2_GENEVE_HWTSO (IFCAP_B_GENEVE_HWTSO - 32) #define IFCAP2_BIT(x) (1UL << (x)) diff --git a/sys/net/if_geneve.c b/sys/net/if_geneve.c new file mode 100644 index 000000000000..9562a3476099 --- /dev/null +++ b/sys/net/if_geneve.c @@ -0,0 +1,3967 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2025-2026 Pouria Mousavizadeh Tehrani + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include "opt_inet.h" +#include "opt_inet6.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +SDT_PROVIDER_DEFINE(if_geneve); + +struct geneve_softc; +LIST_HEAD(geneve_softc_head, geneve_softc); + +static struct sx geneve_sx; +SX_SYSINIT(geneve, &geneve_sx, "GENEVE global start/stop lock"); + +static unsigned geneve_osd_jail_slot; + +union sockaddr_union { + struct sockaddr sa; + struct sockaddr_in sin; + struct sockaddr_in6 sin6; +}; + +struct geneve_socket_mc_info { + union sockaddr_union gnvsomc_saddr; + union sockaddr_union gnvsomc_gaddr; + int gnvsomc_ifidx; + int gnvsomc_users; +}; + +/* The maximum MTU of encapsulated geneve packet. */ +#define GENEVE_MAX_L3MTU (IP_MAXPACKET - \ + 60 /* Maximum IPv4 header len */ - \ + sizeof(struct udphdr) - \ + sizeof(struct genevehdr)) +#define GENEVE_MAX_MTU (GENEVE_MAX_L3MTU - \ + ETHER_HDR_LEN - ETHER_VLAN_ENCAP_LEN) + +#define GENEVE_BASIC_IFCAPS (IFCAP_LINKSTATE | IFCAP_JUMBO_MTU | IFCAP_NV) + +#define GENEVE_VERSION 0 +#define GENEVE_VNI_MASK (GENEVE_VNI_MAX - 1) + +#define GENEVE_HDR_VNI_SHIFT 8 + +#define GENEVE_SO_MC_MAX_GROUPS 32 + +#define GENEVE_SO_VNI_HASH_SHIFT 6 +#define GENEVE_SO_VNI_HASH_SIZE (1 << GENEVE_SO_VNI_HASH_SHIFT) +#define GENEVE_SO_VNI_HASH(_vni) ((_vni) % GENEVE_SO_VNI_HASH_SIZE) + +struct geneve_socket { + struct socket *gnvso_sock; + struct rmlock gnvso_lock; + u_int gnvso_refcnt; + union sockaddr_union gnvso_laddr; + LIST_ENTRY(geneve_socket) gnvso_entry; + struct geneve_softc_head gnvso_vni_hash[GENEVE_SO_VNI_HASH_SIZE]; + struct geneve_socket_mc_info gnvso_mc[GENEVE_SO_MC_MAX_GROUPS]; +}; + +#define GENEVE_SO_RLOCK(_gnvso, _p) rm_rlock(&(_gnvso)->gnvso_lock, (_p)) +#define GENEVE_SO_RUNLOCK(_gnvso, _p) rm_runlock(&(_gnvso)->gnvso_lock, (_p)) +#define GENEVE_SO_WLOCK(_gnvso) rm_wlock(&(_gnvso)->gnvso_lock) +#define GENEVE_SO_WUNLOCK(_gnvso) rm_wunlock(&(_gnvso)->gnvso_lock) +#define GENEVE_SO_LOCK_ASSERT(_gnvso) \ + rm_assert(&(_gnvso)->gnvso_lock, RA_LOCKED) +#define GENEVE_SO_LOCK_WASSERT(_gnvso) \ + rm_assert(&(_gnvso)->gnvso_lock, RA_WLOCKED) + +#define GENEVE_SO_ACQUIRE(_gnvso) refcount_acquire(&(_gnvso)->gnvso_refcnt) +#define GENEVE_SO_RELEASE(_gnvso) refcount_release(&(_gnvso)->gnvso_refcnt) + +struct gnv_ftable_entry { + LIST_ENTRY(gnv_ftable_entry) gnvfe_hash; + uint16_t gnvfe_flags; + uint8_t gnvfe_mac[ETHER_ADDR_LEN]; + union sockaddr_union gnvfe_raddr; + time_t gnvfe_expire; +}; + +#define GENEVE_FE_FLAG_DYNAMIC 0x01 +#define GENEVE_FE_FLAG_STATIC 0x02 + +#define GENEVE_FE_IS_DYNAMIC(_fe) \ + ((_fe)->gnvfe_flags & GENEVE_FE_FLAG_DYNAMIC) + +#define GENEVE_SC_FTABLE_SHIFT 9 +#define GENEVE_SC_FTABLE_SIZE (1 << GENEVE_SC_FTABLE_SHIFT) +#define GENEVE_SC_FTABLE_MASK (GENEVE_SC_FTABLE_SIZE - 1) +#define GENEVE_SC_FTABLE_HASH(_sc, _mac) \ + (geneve_mac_hash(_sc, _mac) % GENEVE_SC_FTABLE_SIZE) + +LIST_HEAD(geneve_ftable_head, gnv_ftable_entry); + +struct geneve_statistics { + uint32_t ftable_nospace; + uint32_t ftable_lock_upgrade_failed; + counter_u64_t txcsum; + counter_u64_t tso; + counter_u64_t rxcsum; +}; + +struct geneve_softc { + LIST_ENTRY(geneve_softc) gnv_entry; + + struct ifnet *gnv_ifp; + uint32_t gnv_flags; +#define GENEVE_FLAG_INIT 0x0001 +#define GENEVE_FLAG_RUNNING 0x0002 +#define GENEVE_FLAG_TEARDOWN 0x0004 +#define GENEVE_FLAG_LEARN 0x0008 +#define GENEVE_FLAG_USER_MTU 0x0010 +#define GENEVE_FLAG_TTL_INHERIT 0x0020 +#define GENEVE_FLAG_DSCP_INHERIT 0x0040 +#define GENEVE_FLAG_COLLECT_METADATA 0x0080 + + int gnv_reqcap; + int gnv_reqcap2; + struct geneve_socket *gnv_sock; + union sockaddr_union gnv_src_addr; + union sockaddr_union gnv_dst_addr; + uint32_t gnv_fibnum; + uint32_t gnv_vni; + uint32_t gnv_port_hash_key; + uint16_t gnv_proto; + uint16_t gnv_min_port; + uint16_t gnv_max_port; + uint8_t gnv_ttl; + enum ifla_geneve_df gnv_df; + + /* Lookup table from MAC address to forwarding entry. */ + uint32_t gnv_ftable_cnt; + uint32_t gnv_ftable_max; + uint32_t gnv_ftable_timeout; + uint32_t gnv_ftable_hash_key; + struct geneve_ftable_head *gnv_ftable; + + /* Derived from gnv_dst_addr. */ + struct gnv_ftable_entry gnv_default_fe; + + struct ip_moptions *gnv_im4o; + struct ip6_moptions *gnv_im6o; + + struct rmlock gnv_lock; + volatile u_int gnv_refcnt; + + int gnv_so_mc_index; + struct geneve_statistics gnv_stats; + struct callout gnv_callout; + struct ether_addr gnv_hwaddr; + int gnv_mc_ifindex; + struct ifnet *gnv_mc_ifp; + struct ifmedia gnv_media; + char gnv_mc_ifname[IFNAMSIZ]; + + /* For rate limiting errors on the tx fast path. */ + struct timeval err_time; + int err_pps; +}; + +#define GENEVE_RLOCK(_sc, _p) rm_rlock(&(_sc)->gnv_lock, (_p)) +#define GENEVE_RUNLOCK(_sc, _p) rm_runlock(&(_sc)->gnv_lock, (_p)) +#define GENEVE_WLOCK(_sc) rm_wlock(&(_sc)->gnv_lock) +#define GENEVE_WUNLOCK(_sc) rm_wunlock(&(_sc)->gnv_lock) +#define GENEVE_LOCK_WOWNED(_sc) rm_wowned(&(_sc)->gnv_lock) +#define GENEVE_LOCK_ASSERT(_sc) rm_assert(&(_sc)->gnv_lock, RA_LOCKED) +#define GENEVE_LOCK_WASSERT(_sc) rm_assert(&(_sc)->gnv_lock, RA_WLOCKED) +#define GENEVE_UNLOCK(_sc, _p) do { \ + if (GENEVE_LOCK_WOWNED(_sc)) \ + GENEVE_WUNLOCK(_sc); \ + else \ + GENEVE_RUNLOCK(_sc, _p); \ +} while (0) + +#define GENEVE_ACQUIRE(_sc) refcount_acquire(&(_sc)->gnv_refcnt) +#define GENEVE_RELEASE(_sc) refcount_release(&(_sc)->gnv_refcnt) + +#define SATOCONSTSIN(sa) ((const struct sockaddr_in *)(sa)) +#define SATOCONSTSIN6(sa) ((const struct sockaddr_in6 *)(sa)) + +struct geneve_pkt_info { + u_int isr; + uint16_t ethertype; + uint8_t ecn; + uint8_t ttl; +}; + +struct nl_parsed_geneve { + /* essential */ + uint32_t ifla_vni; + uint16_t ifla_proto; + struct sockaddr *ifla_local; + struct sockaddr *ifla_remote; + uint16_t ifla_local_port; + uint16_t ifla_remote_port; + + /* optional */ + struct ifla_geneve_port_range ifla_port_range; + enum ifla_geneve_df ifla_df; + uint8_t ifla_ttl; + bool ifla_ttl_inherit; + bool ifla_dscp_inherit; + bool ifla_external; + + /* l2 specific */ + bool ifla_ftable_learn; + bool ifla_ftable_flush; + uint32_t ifla_ftable_max; + uint32_t ifla_ftable_timeout; + uint32_t ifla_ftable_count; /* read-only */ + + /* multicast specific */ + char *ifla_mc_ifname; + uint32_t ifla_mc_ifindex; /* read-only */ +}; + +/* The multicast-based learning parts of the code are taken from if_vxlan */ +static int geneve_ftable_addr_cmp(const uint8_t *, const uint8_t *); +static void geneve_ftable_init(struct geneve_softc *); +static void geneve_ftable_fini(struct geneve_softc *); +static void geneve_ftable_flush(struct geneve_softc *, int); +static void geneve_ftable_expire(struct geneve_softc *); +static int geneve_ftable_update_locked(struct geneve_softc *, + const union sockaddr_union *, const uint8_t *, + struct rm_priotracker *); +static int geneve_ftable_learn(struct geneve_softc *, + const struct sockaddr *, const uint8_t *); + +static struct gnv_ftable_entry * + geneve_ftable_entry_alloc(void); +static void geneve_ftable_entry_free(struct gnv_ftable_entry *); +static void geneve_ftable_entry_init(struct geneve_softc *, + struct gnv_ftable_entry *, const uint8_t *, + const struct sockaddr *, uint32_t); +static void geneve_ftable_entry_destroy(struct geneve_softc *, + struct gnv_ftable_entry *); +static int geneve_ftable_entry_insert(struct geneve_softc *, + struct gnv_ftable_entry *); +static struct gnv_ftable_entry * + geneve_ftable_entry_lookup(struct geneve_softc *, + const uint8_t *); + +static struct geneve_socket * + geneve_socket_alloc(union sockaddr_union *laddr); +static void geneve_socket_destroy(struct geneve_socket *); +static void geneve_socket_release(struct geneve_socket *); +static struct geneve_socket * + geneve_socket_lookup(union sockaddr_union *); +static void geneve_socket_insert(struct geneve_socket *); +static int geneve_socket_init(struct geneve_socket *, struct ifnet *); +static int geneve_socket_bind(struct geneve_socket *, struct ifnet *); +static int geneve_socket_create(struct ifnet *, int, + const union sockaddr_union *, struct geneve_socket **); +static int geneve_socket_set_df(struct geneve_socket *, bool); + +static struct geneve_socket * + geneve_socket_mc_lookup(const union sockaddr_union *); +static int geneve_sockaddr_mc_info_match( + const struct geneve_socket_mc_info *, + const union sockaddr_union *, + const union sockaddr_union *, int); +static int geneve_socket_mc_join_group(struct geneve_socket *, + const union sockaddr_union *, const union sockaddr_union *, + int *, union sockaddr_union *); +static int geneve_socket_mc_leave_group(struct geneve_socket *, + const union sockaddr_union *, + const union sockaddr_union *, int); +static int geneve_socket_mc_add_group(struct geneve_socket *, + const union sockaddr_union *, + const union sockaddr_union *, int, int *); +static void geneve_socket_mc_release_group(struct geneve_socket *, int); + +static struct geneve_softc * + geneve_socket_lookup_softc_locked(struct geneve_socket *, + uint32_t); +static struct geneve_softc * + geneve_socket_lookup_softc(struct geneve_socket *, uint32_t); +static int geneve_socket_insert_softc(struct geneve_socket *, + struct geneve_softc *); +static void geneve_socket_remove_softc(struct geneve_socket *, + struct geneve_softc *); + +static struct ifnet * + geneve_multicast_if_ref(struct geneve_softc *, uint32_t); +static void geneve_free_multicast(struct geneve_softc *); +static int geneve_setup_multicast_interface(struct geneve_softc *); + +static int geneve_setup_multicast(struct geneve_softc *); +static int geneve_setup_socket(struct geneve_softc *); +static void geneve_setup_interface_hdrlen(struct geneve_softc *); +static int geneve_valid_init_config(struct geneve_softc *); +static void geneve_init_complete(struct geneve_softc *); +static void geneve_init(void *); +static void geneve_release(struct geneve_softc *); +static void geneve_teardown_wait(struct geneve_softc *); +static void geneve_teardown_locked(struct geneve_softc *); +static void geneve_teardown(struct geneve_softc *); +static void geneve_timer(void *); + +static int geneve_flush_ftable(struct geneve_softc *, bool); +static uint16_t geneve_get_local_port(struct geneve_softc *); +static uint16_t geneve_get_remote_port(struct geneve_softc *); + +static int geneve_set_vni_nl(struct geneve_softc *, struct nl_pstate *, + uint32_t); +static int geneve_set_local_addr_nl(struct geneve_softc *, struct nl_pstate *, + struct sockaddr *); +static int geneve_set_remote_addr_nl(struct geneve_softc *, struct nl_pstate *, + struct sockaddr *); +static int geneve_set_local_port_nl(struct geneve_softc *, struct nl_pstate *, + uint16_t); +static int geneve_set_remote_port_nl(struct geneve_softc *, struct nl_pstate *, + uint16_t); +static int geneve_set_port_range_nl(struct geneve_softc *, struct nl_pstate *, + struct ifla_geneve_port_range); +static int geneve_set_df_nl(struct geneve_softc *, struct nl_pstate *, + enum ifla_geneve_df); +static int geneve_set_ttl_nl(struct geneve_softc *, struct nl_pstate *, + uint8_t); +static int geneve_set_ttl_inherit_nl(struct geneve_softc *, struct nl_pstate *, + bool); +static int geneve_set_dscp_inherit_nl(struct geneve_softc *, struct nl_pstate *, + bool); +static int geneve_set_collect_metadata_nl(struct geneve_softc *, + struct nl_pstate *, bool); +static int geneve_set_learn_nl(struct geneve_softc *, struct nl_pstate *, + bool); +static int geneve_set_ftable_max_nl(struct geneve_softc *, struct nl_pstate *, + uint32_t); +static int geneve_set_ftable_timeout_nl(struct geneve_softc *, + struct nl_pstate *, uint32_t); +static int geneve_set_mc_if_nl(struct geneve_softc *, struct nl_pstate *, + char *); +static int geneve_flush_ftable_nl(struct geneve_softc *, struct nl_pstate *, + bool); +static void geneve_get_local_addr_nl(struct geneve_softc *, struct nl_writer *); +static void geneve_get_remote_addr_nl(struct geneve_softc *, struct nl_writer *); + +static int geneve_ioctl_ifflags(struct geneve_softc *); +static int geneve_ioctl(struct ifnet *, u_long, caddr_t); + +static uint16_t geneve_pick_source_port(struct geneve_softc *, struct mbuf *); +static void geneve_encap_header(struct geneve_softc *, struct mbuf *, + int, uint16_t, uint16_t, uint16_t); +static uint16_t geneve_get_ethertype(struct mbuf *); +static int geneve_inherit_l3_hdr(struct mbuf *, struct geneve_softc *, + uint16_t, uint8_t *, uint8_t *, u_short *); +static int geneve_encap4(struct geneve_softc *, + const union sockaddr_union *, struct mbuf *); +static int geneve_encap6(struct geneve_softc *, + const union sockaddr_union *, struct mbuf *); +static int geneve_transmit(struct ifnet *, struct mbuf *); +static void geneve_qflush(struct ifnet *); +static int geneve_output(struct ifnet *, struct mbuf *, + const struct sockaddr *, struct route *); +static uint32_t geneve_map_etype_to_af(uint32_t); +static bool geneve_udp_input(struct mbuf *, int, struct inpcb *, + const struct sockaddr *, void *); +static int geneve_input_ether(struct geneve_softc *, struct mbuf **, + const struct sockaddr *, struct geneve_pkt_info *); +static int geneve_input_inherit(struct geneve_softc *, + struct mbuf **, int, struct geneve_pkt_info *); +static int geneve_next_option(struct geneve_socket *, struct genevehdr *, + struct mbuf **); +static void geneve_input_csum(struct mbuf *m, struct ifnet *ifp, + counter_u64_t rxcsum); + +static void geneve_stats_alloc(struct geneve_softc *); +static void geneve_stats_free(struct geneve_softc *); +static void geneve_set_default_config(struct geneve_softc *); +static int geneve_set_reqcap(struct geneve_softc *, struct ifnet *, int, + int); +static void geneve_set_hwcaps(struct geneve_softc *); +static int geneve_clone_create(struct if_clone *, char *, size_t, + struct ifc_data *, struct ifnet **); +static int geneve_clone_destroy(struct if_clone *, struct ifnet *, + uint32_t); +static int geneve_clone_create_nl(struct if_clone *, char *, size_t, + struct ifc_data_nl *); +static int geneve_clone_modify_nl(struct ifnet *, struct ifc_data_nl *); +static void geneve_clone_dump_nl(struct ifnet *, struct nl_writer *); + +static uint32_t geneve_mac_hash(struct geneve_softc *, const uint8_t *); +static int geneve_media_change(struct ifnet *); +static void geneve_media_status(struct ifnet *, struct ifmediareq *); + +static int geneve_sockaddr_cmp(const union sockaddr_union *, + const struct sockaddr *); +static void geneve_sockaddr_copy(union sockaddr_union *, + const struct sockaddr *); +static int geneve_sockaddr_in_equal(const union sockaddr_union *, + const struct sockaddr *); +static void geneve_sockaddr_in_copy(union sockaddr_union *, + const struct sockaddr *); +static int geneve_sockaddr_supported(const union sockaddr_union *, int); +static int geneve_sockaddr_in_any(const union sockaddr_union *); + +static int geneve_can_change_config(struct geneve_softc *); +static int geneve_check_proto(uint16_t); +static int geneve_check_multicast_addr(const union sockaddr_union *); +static int geneve_check_sockaddr(const union sockaddr_union *, const int); + +static int geneve_prison_remove(void *, void *); +static void vnet_geneve_load(void); +static void vnet_geneve_unload(void); +static void geneve_module_init(void); +static void geneve_module_deinit(void); +static int geneve_modevent(module_t, int, void *); + + +static const char geneve_name[] = "geneve"; +static MALLOC_DEFINE(M_GENEVE, geneve_name, + "Generic Network Virtualization Encapsulation Interface"); +#define MTAG_GENEVE_LOOP 0x93d66dc0 /* geneve mtag */ + +VNET_DEFINE_STATIC(struct if_clone *, geneve_cloner); +#define V_geneve_cloner VNET(geneve_cloner) + +static struct mtx geneve_list_mtx; +#define GENEVE_LIST_LOCK() mtx_lock(&geneve_list_mtx) +#define GENEVE_LIST_UNLOCK() mtx_unlock(&geneve_list_mtx) + +static LIST_HEAD(, geneve_socket) geneve_socket_list = LIST_HEAD_INITIALIZER(geneve_socket_list); + +/* Default maximum number of addresses in the forwarding table. */ +#define GENEVE_FTABLE_MAX 2000 + +/* Timeout (in seconds) of addresses learned in the forwarding table. */ +#define GENEVE_FTABLE_TIMEOUT (20 * 60) + +/* Maximum timeout (in seconds) of addresses learned in the forwarding table. */ +#define GENEVE_FTABLE_MAX_TIMEOUT (60 * 60 * 24) + +/* Number of seconds between pruning attempts of the forwarding table. */ +#define GENEVE_FTABLE_PRUNE (5 * 60) + +static int geneve_ftable_prune_period = GENEVE_FTABLE_PRUNE; + +#define _OUT(_field) offsetof(struct nl_parsed_geneve, _field) +static const struct nlattr_parser nla_p_geneve_create[] = { + { .type = IFLA_GENEVE_PROTOCOL, .off = _OUT(ifla_proto), .cb = nlattr_get_uint16 }, +}; +#undef _OUT +NL_DECLARE_ATTR_PARSER(geneve_create_parser, nla_p_geneve_create); + +#define _OUT(_field) offsetof(struct nl_parsed_geneve, _field) +static const struct nlattr_parser nla_p_geneve[] = { + { .type = IFLA_GENEVE_ID, .off = _OUT(ifla_vni), .cb = nlattr_get_uint32 }, + { .type = IFLA_GENEVE_PROTOCOL, .off = _OUT(ifla_proto), .cb = nlattr_get_uint16 }, + { .type = IFLA_GENEVE_LOCAL, .off = _OUT(ifla_local), .cb = nlattr_get_ip }, + { .type = IFLA_GENEVE_REMOTE, .off = _OUT(ifla_remote), .cb = nlattr_get_ip }, + { .type = IFLA_GENEVE_LOCAL_PORT, .off = _OUT(ifla_local_port), .cb = nlattr_get_uint16 }, + { .type = IFLA_GENEVE_PORT, .off = _OUT(ifla_remote_port), .cb = nlattr_get_uint16 }, + { .type = IFLA_GENEVE_PORT_RANGE, .off = _OUT(ifla_port_range), + .arg = (void *)sizeof(struct ifla_geneve_port_range), .cb = nlattr_get_bytes }, + { .type = IFLA_GENEVE_DF, .off = _OUT(ifla_df), .cb = nlattr_get_uint8 }, + { .type = IFLA_GENEVE_TTL, .off = _OUT(ifla_ttl), .cb = nlattr_get_uint8 }, + { .type = IFLA_GENEVE_TTL_INHERIT, .off = _OUT(ifla_ttl_inherit), .cb = nlattr_get_bool }, + { .type = IFLA_GENEVE_DSCP_INHERIT, .off = _OUT(ifla_dscp_inherit), .cb = nlattr_get_bool }, + { .type = IFLA_GENEVE_COLLECT_METADATA, .off = _OUT(ifla_external), .cb = nlattr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_LEARN, .off = _OUT(ifla_ftable_learn), .cb = nlattr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_FLUSH, .off = _OUT(ifla_ftable_flush), .cb = nlattr_get_bool }, + { .type = IFLA_GENEVE_FTABLE_MAX, .off = _OUT(ifla_ftable_max), .cb = nlattr_get_uint32 }, + { .type = IFLA_GENEVE_FTABLE_TIMEOUT, .off = _OUT(ifla_ftable_timeout), .cb = nlattr_get_uint32 }, + { .type = IFLA_GENEVE_MC_IFNAME, .off = _OUT(ifla_mc_ifname), .cb = nlattr_get_string }, +}; +#undef _OUT +NL_DECLARE_ATTR_PARSER(geneve_modify_parser, nla_p_geneve); + +static const struct nlhdr_parser *all_parsers[] = { + &geneve_create_parser, &geneve_modify_parser, +}; + +static int +geneve_ftable_addr_cmp(const uint8_t *a, const uint8_t *b) +{ + int i, d; + + for (i = 0, d = 0; i < ETHER_ADDR_LEN && d == 0; i++) + d = (int)a[i] - (int)b[i]; + + return (d); +} + +static void +geneve_ftable_init(struct geneve_softc *sc) +{ + int i; + + sc->gnv_ftable = malloc(sizeof(struct geneve_ftable_head) * + GENEVE_SC_FTABLE_SIZE, M_GENEVE, M_ZERO | M_WAITOK); + + for (i = 0; i < GENEVE_SC_FTABLE_SIZE; i++) + LIST_INIT(&sc->gnv_ftable[i]); + sc->gnv_ftable_hash_key = arc4random(); +} + +static void +geneve_ftable_fini(struct geneve_softc *sc) +{ + int i; + + for (i = 0; i < GENEVE_SC_FTABLE_SIZE; i++) { + KASSERT(LIST_EMPTY(&sc->gnv_ftable[i]), + ("%s: geneve %p ftable[%d] not empty", __func__, sc, i)); + } + MPASS(sc->gnv_ftable_cnt == 0); + + free(sc->gnv_ftable, M_GENEVE); + sc->gnv_ftable = NULL; +} + +static void +geneve_ftable_flush(struct geneve_softc *sc, int all) +{ + struct gnv_ftable_entry *fe, *tfe; + + for (int i = 0; i < GENEVE_SC_FTABLE_SIZE; i++) { + LIST_FOREACH_SAFE(fe, &sc->gnv_ftable[i], gnvfe_hash, tfe) { + if (all || GENEVE_FE_IS_DYNAMIC(fe)) + geneve_ftable_entry_destroy(sc, fe); + } + } +} + +static void +geneve_ftable_expire(struct geneve_softc *sc) +{ + struct gnv_ftable_entry *fe, *tfe; + + GENEVE_LOCK_WASSERT(sc); + + for (int i = 0; i < GENEVE_SC_FTABLE_SIZE; i++) { + LIST_FOREACH_SAFE(fe, &sc->gnv_ftable[i], gnvfe_hash, tfe) { + if (GENEVE_FE_IS_DYNAMIC(fe) && + time_uptime >= fe->gnvfe_expire) + geneve_ftable_entry_destroy(sc, fe); + } + } +} + +static int +geneve_ftable_update_locked(struct geneve_softc *sc, + const union sockaddr_union *unsa, const uint8_t *mac, + struct rm_priotracker *tracker) +{ + struct gnv_ftable_entry *fe; + int error; + + GENEVE_LOCK_ASSERT(sc); + +again: + /* + * A forwarding entry for this MAC address might already exist. If + * so, update it, otherwise create a new one. We may have to upgrade + * the lock if we have to change or create an entry. + */ + fe = geneve_ftable_entry_lookup(sc, mac); + if (fe != NULL) { + fe->gnvfe_expire = time_uptime + sc->gnv_ftable_timeout; + + if (!GENEVE_FE_IS_DYNAMIC(fe) || + geneve_sockaddr_in_equal(&fe->gnvfe_raddr, &unsa->sa)) + return (0); + if (!GENEVE_LOCK_WOWNED(sc)) { + GENEVE_RUNLOCK(sc, tracker); + GENEVE_WLOCK(sc); + sc->gnv_stats.ftable_lock_upgrade_failed++; + goto again; + } + geneve_sockaddr_in_copy(&fe->gnvfe_raddr, &unsa->sa); + return (0); + } + + if (!GENEVE_LOCK_WOWNED(sc)) { + GENEVE_RUNLOCK(sc, tracker); + GENEVE_WLOCK(sc); + sc->gnv_stats.ftable_lock_upgrade_failed++; + goto again; + } + + if (sc->gnv_ftable_cnt >= sc->gnv_ftable_max) { + sc->gnv_stats.ftable_nospace++; + return (ENOSPC); + } + + fe = geneve_ftable_entry_alloc(); + if (fe == NULL) + return (ENOMEM); + + geneve_ftable_entry_init(sc, fe, mac, &unsa->sa, GENEVE_FE_FLAG_DYNAMIC); + + /* The prior lookup failed, so the insert should not. */ + error = geneve_ftable_entry_insert(sc, fe); + MPASS(error == 0); + + return (error); +} + +static int +geneve_ftable_learn(struct geneve_softc *sc, const struct sockaddr *sa, + const uint8_t *mac) +{ + struct rm_priotracker tracker; + union sockaddr_union unsa; + int error; + + /* + * The source port may be randomly selected by the remote host, so + * use the port of the default destination address. + */ + geneve_sockaddr_copy(&unsa, sa); + unsa.sin.sin_port = sc->gnv_dst_addr.sin.sin_port; + + if (unsa.sa.sa_family == AF_INET6) { + error = sa6_embedscope(&unsa.sin6, V_ip6_use_defzone); + if (error) + return (error); + } + + GENEVE_RLOCK(sc, &tracker); + error = geneve_ftable_update_locked(sc, &unsa, mac, &tracker); + GENEVE_UNLOCK(sc, &tracker); + + return (error); +} + +static struct gnv_ftable_entry * +geneve_ftable_entry_alloc(void) +{ + struct gnv_ftable_entry *fe; + + fe = malloc(sizeof(*fe), M_GENEVE, M_ZERO | M_NOWAIT); + + return (fe); +} + +static void +geneve_ftable_entry_free(struct gnv_ftable_entry *fe) +{ + + free(fe, M_GENEVE); +} + +static void +geneve_ftable_entry_init(struct geneve_softc *sc, struct gnv_ftable_entry *fe, + const uint8_t *mac, const struct sockaddr *sa, uint32_t flags) +{ + + fe->gnvfe_flags = flags; + fe->gnvfe_expire = time_uptime + sc->gnv_ftable_timeout; + memcpy(fe->gnvfe_mac, mac, ETHER_ADDR_LEN); + geneve_sockaddr_copy(&fe->gnvfe_raddr, sa); +} + +static void +geneve_ftable_entry_destroy(struct geneve_softc *sc, + struct gnv_ftable_entry *fe) +{ + + sc->gnv_ftable_cnt--; + LIST_REMOVE(fe, gnvfe_hash); + geneve_ftable_entry_free(fe); +} + +static int +geneve_ftable_entry_insert(struct geneve_softc *sc, + struct gnv_ftable_entry *fe) +{ + struct gnv_ftable_entry *lfe; + uint32_t hash; + int dir; + + GENEVE_LOCK_WASSERT(sc); + hash = GENEVE_SC_FTABLE_HASH(sc, fe->gnvfe_mac); + + lfe = LIST_FIRST(&sc->gnv_ftable[hash]); + if (lfe == NULL) { + LIST_INSERT_HEAD(&sc->gnv_ftable[hash], fe, gnvfe_hash); + goto out; + } + + do { + dir = geneve_ftable_addr_cmp(fe->gnvfe_mac, lfe->gnvfe_mac); + if (dir == 0) + return (EEXIST); + if (dir > 0) { + LIST_INSERT_BEFORE(lfe, fe, gnvfe_hash); + goto out; + } else if (LIST_NEXT(lfe, gnvfe_hash) == NULL) { + LIST_INSERT_AFTER(lfe, fe, gnvfe_hash); + goto out; + } else + lfe = LIST_NEXT(lfe, gnvfe_hash); + } while (lfe != NULL); + +out: + sc->gnv_ftable_cnt++; + + return (0); +} + +static struct gnv_ftable_entry * +geneve_ftable_entry_lookup(struct geneve_softc *sc, const uint8_t *mac) +{ + struct gnv_ftable_entry *fe; + uint32_t hash; + int dir; + + GENEVE_LOCK_ASSERT(sc); + + hash = GENEVE_SC_FTABLE_HASH(sc, mac); + LIST_FOREACH(fe, &sc->gnv_ftable[hash], gnvfe_hash) { + dir = geneve_ftable_addr_cmp(mac, fe->gnvfe_mac); + if (dir == 0) + return (fe); + if (dir > 0) + break; + } + + return (NULL); +} + +static struct geneve_socket * +geneve_socket_alloc(union sockaddr_union *laddr) +{ + struct geneve_socket *gnvso; + + gnvso = malloc(sizeof(*gnvso), M_GENEVE, M_WAITOK | M_ZERO); + rm_init(&gnvso->gnvso_lock, "genevesorm"); + refcount_init(&gnvso->gnvso_refcnt, 0); + for (int i = 0; i < GENEVE_SO_VNI_HASH_SIZE; i++) + LIST_INIT(&gnvso->gnvso_vni_hash[i]); + gnvso->gnvso_laddr = *laddr; + + return (gnvso); +} + +static void +geneve_socket_destroy(struct geneve_socket *gnvso) +{ + struct socket *so; + + so = gnvso->gnvso_sock; + if (so != NULL) { + gnvso->gnvso_sock = NULL; + soclose(so); + } + + rm_destroy(&gnvso->gnvso_lock); + free(gnvso, M_GENEVE); +} + +static void +geneve_socket_release(struct geneve_socket *gnvso) +{ + int destroy; + + GENEVE_LIST_LOCK(); *** 3327 LINES SKIPPED *** From nobody Mon Apr 13 14:17:01 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 4fvTxT62XVz6ZF0B for ; Mon, 13 Apr 2026 14:17:01 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvTxT2cyzz3npy for ; Mon, 13 Apr 2026 14:17:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776089821; 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=F8T5pEqnGJ5oTIUfUDjqy3aKk5bWufE99duA3nW7p98=; b=fkD6qIvRM/ip7o7aLoaF/9tS7ITgAgYwv3zIh0/Ko1i1XITsrOqpEwDhpBFILuEjKsEbHt hYZ7qeszYOzizkOr6TNM2/OVeJfPKhyEQ2BMCUTxXBi046ADlIXWawjlF+zPgjmZAyPHa3 GCkT02kXbbVkWLrXpzT754D3vSDUmtsftvEEDJ4TdaJ3zNbcjtnkLa55vKO1Sv6H/vPq/u UM4lS1HqFsdxd7+MIDtY5F9foswqG/PCEM5KzD8yivWE5JhfQyJPj8nw2Lt9wE3VuCv51J YgumK0U5OtbyVHls5lHl/q3GT1n10VqmY+1bA8ZjVzH3kDguo0TpoAx4UsDUOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776089821; a=rsa-sha256; cv=none; b=FJ6uAC/b5kmDIw+p4xEXiBsk6Lp9a1uF4sZ19cmS8Xyl1vFELJ+mJPCLnrSZfv6kvvOkcP J4mfE89Ss1HuZ3mZjipIMWsH2ZTuP15orOedSceCp1/xL93j1sdU58oa8OiuAddXH192Pw k4575j6Lz4OzS+BJ7NIc+x7SDS6tFzoyFqvo0lJTMOZi0eA11xheVxhYQwAdfePFXiDW8l anlI3kLwYUOuM23EflQ0nnKFUIXw0sUay4YY1iv41BeUMREnYAEQ4kfAu788sZPxyo6bTa 8fEepIPhCfBgScZRBrtc3fdB+bYqlTyWpEuIvYl/xZxXnuI3mZGC4IoaMxRolw== 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=1776089821; 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=F8T5pEqnGJ5oTIUfUDjqy3aKk5bWufE99duA3nW7p98=; b=x+aChpiO2l1G3zHNvIN6eLK4hqsoYqi3V4RFlMCUk3r0sCrRTNQuW+CyqBEfjrbcOOTR91 154SkmH3uISga1YFzmXsTbSX+bKUbrAwkEBghknM3idPxcwNYBNU2Q/i8W+ro/DvtM6yl+ 3pVxdk55A//k7HHxfoQGIlvdIOWIXJ03ztySziXKsjkTNhEXBJLj+NcnAB3NP/0P6hOSOF T3YVSDraRICbYYR1xOUMDJqhLVboJER+f+Lsg3SeNWxWa6Xu2HrRi5CBuYPgMHSfba/mPO 5xnABHEcKe8W4FXcd78SzQMsM8DGHjmqVpfKlOQE6ufRF1vJPji2L9NTag8O2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvTxT1ydzz16p6 for ; Mon, 13 Apr 2026 14:17:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 462a8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:17:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: b0ef03f0c4bc - main - ifconfig.8: Add geneve(4) parameters 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b0ef03f0c4bc2a7715e4b8ea4ead8dd73dffdd95 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:17:01 +0000 Message-Id: <69dcfadd.462a8.13c0a6fa@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=b0ef03f0c4bc2a7715e4b8ea4ead8dd73dffdd95 commit b0ef03f0c4bc2a7715e4b8ea4ead8dd73dffdd95 Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-13 12:38:53 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 14:15:06 +0000 ifconfig.8: Add geneve(4) parameters Add geneve parameters to ifconfig manual. Reviewed by: ziaee Differential Revision: https://reviews.freebsd.org/D55181 --- sbin/ifconfig/ifconfig.8 | 113 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 112 insertions(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index f062ddec774d..1dc599a61623 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -28,7 +28,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 12, 2025 +.Dd December 11, 2025 .Dt IFCONFIG 8 .Os .Sh NAME @@ -3257,6 +3257,117 @@ Delete all dynamically-learned addresses from the forwarding table. .It Cm vxlanflushall Delete all addresses, including static addresses, from the forwarding table. .El +.Ss Generic Network Virtualization Encapsulation Parameters +The following parameters are used to configure +.Xr geneve 4 +interfaces. +.Bl -tag -width indent +.It Cm geneveid Ar identifier +This value is a 24-bit Virtual Network Identifier (VNI) that identifies the +virtual network identifier of the interface. +.It Cm genevemode Ar mode +Set the +.Nm +protocol operating +.Ar mode +value. +Supported modes are currently: +.Bl -tag -width indent +.It Cm l2 +Default. +.It Cm l3 +.El +.It Cm genevelocal Ar address +The source address used in the encapsulating IPv4/IPv6 header. +The address should already be assigned to an existing interface. +When the interface is configured in unicast mode, the listening socket +is bound to this address. +.It Cm geneveremote Ar address +The interface can be configured in a unicast, or point-to-point, mode +to create a tunnel between two hosts. +This is the IP address of the remote end of the tunnel. +.It Cm genevegroup Ar address +The interface can be configured in a multicast mode +to create a virtual network of hosts. +This is the IP multicast group address the interface will join. +.It Cm genevelocalport Ar port +The port number the interface will listen on. +The default port number is 6081. +.It Cm geneveremoteport Ar port +The destination port number used in the encapsulating IPv4/IPv6 header. +The remote host should be listening on this port. +The default port number is 6081. +.It Cm geneveportrange Ar low high +The range of source ports used in the encapsulating IPv4/IPv6 header. +The port selected within the range is based on a hash of the inner frame. +A range is useful to provide entropy within the outer IP header +for more effective load balancing. +The default range is between the +.Xr sysctl 8 +variables +.Va net.inet.ip.portrange.first +and +.Va net.inet.ip.portrange.last +.It Cm genevetimeout Ar timeout +The maximum time, in seconds, before an entry in the forwarding table +is pruned. +The default is 1200 seconds (20 minutes). +.It Cm genevemaxaddr Ar max +The maximum number of entries in the forwarding table. +The default is 2000. +.It Cm genevedev Ar dev +When the interface is configured in multicast mode, the +.Cm dev +interface is used to transmit IP multicast packets. +.It Cm genevedf Ar df +Set the Do not fragment (DF) bit in the encapsulating header. +Supported +.Ar df +values are currently: +.Bl -tag -width indent +.It Cm set +Do not allow fragmentation on the output IPv4/IPv6 packets and +set the Do not fragment (DF) bit in the encapsulating IPv4 header. +.It Cm unset +Default. +.It Cm inherit +The Do not fragment (DF) bit copied from inner IPv4 header to the +outer IPv4 header. +.El +.It Cm genevettl Ar ttl +The TTL used in the encapsulating IPv4/IPv6 header. +.Bl -tag -width indent +.It Cm 0-255 +The default is 64. +.It Cm inherit +The TTL copied from inner encapsulated header to the outer header. +.El +.It Cm genevedscpinherit +Inherit DSCP or Traffic Class value from the inner IPv4/IPv6 header. +.It Fl genevedscpinherit +Unconfigure DSCP or Traffic Class inheritence from the inner IPv4/IPv6 header. +This is the default. +.It Cm genevelearn +When in L2 unicast mode, The source IP address and inner source Ethernet +MAC address of received packets are used to dynamically populate the +forwarding table. +When in L2 multicast mode, an entry in the forwarding table allows the +interface to send the frame directly to the remote host instead of +broadcasting the frame to the multicast group. +This is the default. +.It Fl genevelearn +In L2 mode, geneve forwarding table is not populated by received packets. +.It Cm geneveexternal +make this tunnel externally controlled. +.It Fl geneveexternal +enable manual configuration for this tunnel. +This is the default +.It Cm geneveflush +Delete all dynamically-learned addresses from the forwarding table when in L2 +mode. +.It Cm geneveflushall +Delete all addresses, including static addresses, from the forwarding table. +.El .Ss CARP Parameters The following parameters are used to configure .Xr carp 4 From nobody Mon Apr 13 14:24:04 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 4fvV5d2pG5z6ZFP3 for ; Mon, 13 Apr 2026 14:24:05 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvV5c6j6jz3qyy for ; Mon, 13 Apr 2026 14:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090245; 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=vdC+iHO8MES5lVr69Bvf9fkX1I+eBvWzQ8wCwULZVAg=; b=BknqVt9rNC2Sw68RsyHUQDu4q4+GUypMgfIQVxk/D4bAkH79a7L+2n+XVP4F6e7QXZRTnK z8jBkxMNuObQdyoLEm0p228KUAYcigkKV64PNyVaM0NkrLryrVq6xNvKk7Dxv+djL0+x5I TP9I1U4pau9DE8+6vvw22cNN2kZX9zh85M9AGSKQD9ErX4OxIW08nigRZURp7FfdLsqaAs D2OE/CJnOGQp08o24zLg8+iash5++Ha77OGihMWzjQVqkGoJpRCNzVSkAb5UJxkCqhkvVV GovwLZTCbY/zqj/1LyoxpbyuSmjJVFD5VZ9XBXkvUhr2fFEV6aPH6cWkSyWWew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090245; a=rsa-sha256; cv=none; b=cwQXMktjCB6RyeoiZbbTGMhWobsfyglRoNSORl6RLVA+Qayx2huGw71pBujIFG4SzTN9/P u18qS+6EITYRdHFygWJfOwmQqVUbD8s3hPzBIr+BdswRDIiewZDi6hjqk273r45LZk/Ig3 XLh2I1RXTpvdRdzRR1J53v7FkFMvuNHoNPGh2nQw8xY9J9I9+X3sm3RoQvkYP3bfcmQNy3 nGN0KX7Akw6yD57uHuCexuwTHQNek9bTG93OiitjrH3VBtFcvIkd2C1687d6nWs1gjAMJN zfpAw9FLX5gYp61dsdB7/cbBxQJ0RBSIBEoBsjoBm9Vw+9K0kZmBsDGWSB71EA== 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=1776090245; 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=vdC+iHO8MES5lVr69Bvf9fkX1I+eBvWzQ8wCwULZVAg=; b=Fbc9fixWdAe/MDW1iRjUHkfUaLPK6+UfKz1SqCadPSFKohenbL9A2w4Ap75xmB3a4MY2rr 2XoAPAfGLYPVz9u6e8Mah1r6t9nbUWkhmGwERtfWx0TYvlqRSw2XGAba+1iuOn55G+6r6h AL13PBdM5/l7hMzUO4sIbVdEYHupudVdmIWNsdEPcbdGzGfecghdDogZfoP1HMAF1sTVEB 7/vUFR6DxcEedqThfKtGG53+bbbuZM43cv5KdXDKj6+qapNy/7jJGf8Co9NWZhG7ChWi4z XPh2vZ6GgJ4Fb+ZEzxBaBBp08em5hmbRQ7kUTyKLqFAwUIGbPD6Y19Ka1i0tJA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvV5c5dfYz16k4 for ; Mon, 13 Apr 2026 14:24:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46530 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:24:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: c208439cdb58 - main - arm64: Add a cmap page to pmap 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c208439cdb588d91aead9403cec3d4acf4a8bebf Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:24:04 +0000 Message-Id: <69dcfc84.46530.22f71c34@gitrepo.freebsd.org> The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c208439cdb588d91aead9403cec3d4acf4a8bebf commit c208439cdb588d91aead9403cec3d4acf4a8bebf Author: Andrew Turner AuthorDate: 2026-04-13 11:50:32 +0000 Commit: Andrew Turner CommitDate: 2026-04-13 14:23:05 +0000 arm64: Add a cmap page to pmap When modifying mappings in pmap we may need to perform a break-before-make sequence. This creates an invalid mapping, then recreates it with the changes. When modifying DMAP mappings we may be changing the mapping that contains its own page table then after breaking the old entry we are unable to create the new entry. To fix this create a map that can be used & won't be affected by the break-before-make sequence. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D56306 --- sys/arm64/arm64/pmap.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 678030f827dd..7d19c927d369 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -290,6 +290,10 @@ VM_PAGE_TO_PV_LIST_LOCK(vm_page_t m) #define PTE_TO_VM_PAGE(pte) PHYS_TO_VM_PAGE(PTE_TO_PHYS(pte)) #define VM_PAGE_TO_PTE(m) PHYS_TO_PTE(VM_PAGE_TO_PHYS(m)) +static struct mtx cmap_lock; +static void *cmap1_addr; +static pt_entry_t *cmap1_pte; + /* * The presence of this flag indicates that the mapping is writeable. * If the ATTR_S1_AP_RO bit is also set, then the mapping is clean, otherwise @@ -1363,7 +1367,7 @@ pmap_bootstrap(void) virtual_avail = preinit_map_va + PMAP_PREINIT_MAPPING_SIZE; virtual_avail = roundup2(virtual_avail, L1_SIZE); - virtual_end = VM_MAX_KERNEL_ADDRESS - PMAP_MAPDEV_EARLY_SIZE; + virtual_end = VM_MAX_KERNEL_ADDRESS - PMAP_MAPDEV_EARLY_SIZE - L2_SIZE; kernel_vm_end = virtual_avail; /* @@ -1419,6 +1423,19 @@ pmap_bootstrap(void) alloc_pages(msgbufpv, round_page(msgbufsize) / PAGE_SIZE); msgbufp = (void *)msgbufpv; + /* Allocate space for the CPU0 CMAP */ + bs_state.va = virtual_end; + pmap_bootstrap_l2_table(&bs_state); + pmap_store(&bs_state.l3[pmap_l3_index(bs_state.va)], + PHYS_TO_PTE(pmap_early_vtophys((vm_offset_t)bs_state.l3)) | + ATTR_AF | pmap_sh_attr | ATTR_S1_XN | ATTR_KERN_GP | + ATTR_S1_IDX(VM_MEMATTR_WRITE_BACK) | L3_PAGE); + dsb(ishst); + + mtx_init(&cmap_lock, "SYSMAPS", NULL, MTX_DEF); + cmap1_addr = (void *)(virtual_end + L3_SIZE); + cmap1_pte = &bs_state.l3[pmap_l3_index((vm_offset_t)cmap1_addr)]; + pa = pmap_early_vtophys(bs_state.freemempos); physmem_exclude_region(start_pa, pa - start_pa, EXFLAG_NOALLOC); From nobody Mon Apr 13 14:24:07 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 4fvV5g2GHzz6ZFZ6 for ; Mon, 13 Apr 2026 14:24:07 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvV5g0dCdz3r2T for ; Mon, 13 Apr 2026 14:24:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090247; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bFcE2PnXohFv7QzeQhvsi/sU+pKgHbPbAkOOVbJ7uug=; b=GgfhXQ9ondIu7+zrCFjG9cvTAfD+KrELSc/CbzBW3UvWyvk4PGMBo+f9x6zc7pgyq+eX8D F5d6SPuDqFx5xlINoU9bVoAuHaRgOUBkFOTm5yJJiDnzFmU9ukblEZeUaknW6HKSq8w7ln SPPgRRk4CYgPiX/zkF0XV/dZt+8bViCwUBhb4MgO5GSXq1ar3I+JEnF8wo6uFabLeVfu9S lLhvXQ2oRJWl/90rq/Xm4fLoWM8mLrFMfKprtk5hk4wSDq0i8LaV434IBuBDZGqiJXXuOv 6xZAgcmNhW/odO7F+TdGoKK5C8K1IO4ceFRlBzD6P1ycr52s3f2luaIVneALZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090247; a=rsa-sha256; cv=none; b=N7l6HfMO9FhokSVtYRWNRhcFAmeRpzmex0lrdFarI9H5QI8RgLXSZ/q0gVz/lPCGi4buCe Lrj8aS1gULMU/pM1SRZk6e+XObBpMfDAfvfWq41aYQP6zBjGB2vSewCgS4SBpk+e8hU+Xf PsDwh3HdGLNWowki96vKzINPEOjDflpwe99MlaMBJnSpG/XqlweWOEgls+Yfg8HLGMXLiI d0hygyer0U25m7xdrdMbQX6p04rAIXlzrUC+5hHmUALRVqRHlacToDdr0PJbvunGhaswG/ 2E/SRdD0ygLuqnuReXcWxSVYAbN1NVOMisUI+31fxQF68V3ulSWcYoB/7bca3g== 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=1776090247; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bFcE2PnXohFv7QzeQhvsi/sU+pKgHbPbAkOOVbJ7uug=; b=xmK5OPKk+RnhGt+IWz45DUVNtg3wpAmbZJw6Ym5ZqC0G3CAFvtlOIQBp4soTpTdgokArMt Lk/ZE7jjA0Bi8nGiQIqYyMSXCC4xm6mPO9eEDcet4CUfGDgiUtO80JtZp16vmjFLEFLyun Megi5L9qmnRpFvOGsJDN7WQuRU5j1Q1IxfY80XjQZ+ob+Zzy14AaxNXHZLIzI65KaQQEXi lveaUl4Wv354geGxzChptFchKQSXAJHWx+16BQqW2I8TrRg0AQQdAcX5nXSq8PR5uRnJmo 6yYUf1CcAnrJMfiqbBE0ghG+U5C0YdaUgGW+GbNfiwo3SZrd15dcMn25Q1vu8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvV5g0Cnsz16hV for ; Mon, 13 Apr 2026 14:24:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4693e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:24:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Harry Moulton From: Andrew Turner Subject: git: 7e718b9a8eec - main - arm64: mte: cleanup cache register definitions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7e718b9a8eec6b5ed86b3b5509fb09dd590a3b60 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:24:07 +0000 Message-Id: <69dcfc87.4693e.2f93ca58@gitrepo.freebsd.org> The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=7e718b9a8eec6b5ed86b3b5509fb09dd590a3b60 commit 7e718b9a8eec6b5ed86b3b5509fb09dd590a3b60 Author: Harry Moulton AuthorDate: 2026-04-13 11:52:10 +0000 Commit: Andrew Turner CommitDate: 2026-04-13 14:23:05 +0000 arm64: mte: cleanup cache register definitions Cleanup the definitions in armreg.h for the CSSIDR_EL1, CLIDR_EL1 and CSSELR_EL1 system register to prepare for additional bitfeilds for Memory Tagging Extension (MTE). Reviewed by: andrew Sponsored by: Arm Ltd Signed-off-by: Harry Moulton Differential Revision: https://reviews.freebsd.org/D55944 --- sys/arm64/arm64/identcpu.c | 8 ++-- sys/arm64/include/armreg.h | 93 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 78 insertions(+), 23 deletions(-) diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c index 4b5361090ead..400ea5860695 100644 --- a/sys/arm64/arm64/identcpu.c +++ b/sys/arm64/arm64/identcpu.c @@ -3086,10 +3086,10 @@ print_cpu_cache(struct cpu_desc *desc, struct sbuf *sb, uint64_t ccs, * register. */ if ((desc->id_aa64mmfr2 & ID_AA64MMFR2_CCIDX_64)) - cache_size = (CCSIDR_NSETS_64(ccs) + 1) * - (CCSIDR_ASSOC_64(ccs) + 1); + cache_size = (CCSIDR_NumSets64(ccs) + 1) * + (CCSIDR_Assoc64(ccs) + 1); else - cache_size = (CCSIDR_NSETS(ccs) + 1) * (CCSIDR_ASSOC(ccs) + 1); + cache_size = (CCSIDR_NumSets(ccs) + 1) * (CCSIDR_Assoc(ccs) + 1); cache_size *= line_size; sbuf_printf(sb, "%zuKB (%s)", cache_size / 1024, @@ -3377,7 +3377,7 @@ identify_cpu(u_int cpu) int j = 0; if ((clidr & CLIDR_CTYPE_IO)) { WRITE_SPECIALREG(csselr_el1, - CSSELR_Level(i) | CSSELR_InD); + CSSELR_Level(i) | CSSELR_InD_IC); desc->ccsidr[i][j++] = READ_SPECIALREG(ccsidr_el1); } diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index 271fe693cdea..257239b923af 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -167,30 +167,71 @@ #define APIBKeyLo_EL1_op2 2 /* CCSIDR_EL1 - Cache Size ID Register */ -#define CCSIDR_NumSets_MASK 0x0FFFE000 -#define CCSIDR_NumSets64_MASK 0x00FFFFFF00000000 -#define CCSIDR_NumSets_SHIFT 13 -#define CCSIDR_NumSets64_SHIFT 32 -#define CCSIDR_Assoc_MASK 0x00001FF8 -#define CCSIDR_Assoc64_MASK 0x0000000000FFFFF8 +#define CCSIDR_EL1_REG MRS_REG_ALT_NAME(CCSIDR_EL1) +#define CCSIDR_EL1_op0 2 +#define CCSIDR_EL1_op1 1 +#define CCSIDR_EL1_CRn 0 +#define CCSIDR_EL1_CRm 0 +#define CCSIDR_EL1_op2 0 +#define CCSIDR_LineSize_SHIFT 0 +#define CCSIDR_LineSize_WIDTH 3 +#define CCSIDR_LineSize_MASK (UL(0x7) << CCSIDR_LineSize_SHIFT) +#define CCSIDR_LineSize_VAL(x) ((x) & CCSIDR_LineSize_MASK) #define CCSIDR_Assoc_SHIFT 3 +#define CCSIDR_Assoc_WIDTH 10 +#define CCSIDR_Assoc_MASK (UL(0x3ff) << CCSIDR_Assoc_SHIFT) +#define CCSIDR_Assoc_VAL(x) ((x) & CCSIDR_Assoc_MASK) +#define CCSIDR_NumSets_SHIFT 13 +#define CCSIDR_NumSets_WIDTH 15 +#define CCSIDR_NumSets_MASK (UL(0x7fff) << CCSIDR_NumSets_SHIFT) +#define CCSIDR_NumSets_VAL(x) ((x) & CCSIDR_NumSets_MASK) +/* FEAT_CCIDX - Extended Cache Index */ #define CCSIDR_Assoc64_SHIFT 3 -#define CCSIDR_LineSize_MASK 0x7 -#define CCSIDR_NSETS(idr) \ +#define CCSIDR_Assoc64_WIDTH 20 +#define CCSIDR_Assoc64_MASK (UL(0x1fffff) << CCSIDR_Assoc64_SHIFT) +#define CCSIDR_Assoc64_VAL(x) ((x) & CCSIDR_Assoc64_MASK) +#define CCSIDR_NumSets64_SHIFT 32 +#define CCSIDR_NumSets64_WIDTH 23 +#define CCSIDR_NumSets64_MASK (UL(0xffffff) << CCSIDR_NumSets64_SHIFT) +#define CCSIDR_NumSets64_VAL(x) ((x) & CCSIDR_NumSets64_MASK) +#define CCSIDR_NumSets(idr) \ (((idr) & CCSIDR_NumSets_MASK) >> CCSIDR_NumSets_SHIFT) -#define CCSIDR_ASSOC(idr) \ - (((idr) & CCSIDR_Assoc_MASK) >> CCSIDR_Assoc_SHIFT) -#define CCSIDR_NSETS_64(idr) \ +#define CCSIDR_NumSets64(idr) \ (((idr) & CCSIDR_NumSets64_MASK) >> CCSIDR_NumSets64_SHIFT) -#define CCSIDR_ASSOC_64(idr) \ +#define CCSIDR_Assoc(idr) \ + (((idr) & CCSIDR_Assoc_MASK) >> CCSIDR_Assoc_SHIFT) +#define CCSIDR_Assoc64(idr) \ (((idr) & CCSIDR_Assoc64_MASK) >> CCSIDR_Assoc64_SHIFT) /* CLIDR_EL1 - Cache level ID register */ -#define CLIDR_CTYPE_MASK 0x7 /* Cache type mask bits */ -#define CLIDR_CTYPE_IO 0x1 /* Instruction only */ -#define CLIDR_CTYPE_DO 0x2 /* Data only */ -#define CLIDR_CTYPE_ID 0x3 /* Split instruction and data */ -#define CLIDR_CTYPE_UNIFIED 0x4 /* Unified */ +#define CLIDR_EL1_REG MRS_REG_ALT_NAME(CLIDR_EL1) +#define CLIDR_EL1_op0 2 +#define CLIDR_EL1_op1 1 +#define CLIDR_EL1_CRn 0 +#define CLIDR_EL1_CRm 0 +#define CLIDR_EL1_op2 1 +#define CLIDR_CTYPE_MASK UL(0x7) +#define CLIDR_CTYPE_NONE 0x0 /* No cache */ +#define CLIDR_CTYPE_IC 0x1 /* Instruction cache only */ +#define CLIDR_CTYPE_DC 0x2 /* Data cache only */ +#define CLIDR_CTYPE_IO 0x3 /* Separate instruction & data cache */ +#define CLIDR_CTYPE_UNIFIED 0x4 /* Unified cache */ +#define CLIDR_LoUIS_SHIFT 21 +#define CLIDR_LoUIS_WIDTH 3 +#define CLIDR_LoUIS_MASK (UL(0x7) << CLIDR_LoUIS_SHIFT) +#define CLIDR_LoUIS_VAL(x) ((x) & CLIDR_LoUIS_MASK) +#define CLIDR_LoC_SHIFT 24 +#define CLIDR_LoC_WIDTH 3 +#define CLIDR_LoC_MASK (UL(0x7) << CLIDR_LoC_SHIFT) +#define CLIDR_LoC_VAL(x) ((x) & CLIDR_LoC_MASK) +#define CLIDR_LoUU_SHIFT 27 +#define CLIDR_LoUU_WIDTH 3 +#define CLIDR_LoUU_MASK (UL(0x7) << CLIDR_LoUU_SHIFT) +#define CLIDR_LoUU_VAL(x) ((x) & CLIDR_LoUU_MASK) +#define CLIDR_ICB_SHIFT 30 +#define CLIDR_ICB_WIDTH 3 +#define CLIDR_ICB_MASK (UL(0x7) << CLIDR_ICB_SHIFT) +#define CLIDR_ICB_VAL(x) ((x) & CLIDR_ICB_MASK) /* CNTKCTL_EL1 - Counter-timer Kernel Control Register */ #define CNTKCTL_EL1_op0 3 @@ -342,8 +383,22 @@ #define CPACR_EL12_op2 2 /* CSSELR_EL1 - Cache size selection register */ -#define CSSELR_Level(i) (i << 1) -#define CSSELR_InD 0x00000001 +#define CSSELR_EL1_REG MRS_REG_ALT_NAME(CSSELR_EL1) +#define CSSELR_EL1_op0 3 +#define CSSELR_EL1_op1 2 +#define CSSELR_EL1_CRn 0 +#define CSSELR_EL1_CRm 0 +#define CSSELR_EL1_op2 0 +#define CSSELR_InD_SHIFT 0 +#define CSSELR_InD_WIDTH 1 +#define CSSELR_InD_MASK (UL(0x1) << CSSELR_InD_SHIFT) +#define CSSELR_InD_VAL(x) ((x) & CSSELR_InD_MASK) +#define CSSELR_InD_DC (0x0 << CSSELR_InD_SHIFT) /* Data or unified cache */ +#define CSSELR_InD_IC (0x1 << CSSELR_InD_SHIFT) /* Instruction cache */ +#define CSSELR_Level_SHIFT 1 +#define CSSELR_Level_WIDTH 3 +#define CSSELR_Level_MASK (UL(0x7) << CSSELR_Level_SHIFT) +#define CSSELR_Level(i) (i << CSSELR_Level_SHIFT) /* CTR_EL0 - Cache Type Register */ #define CTR_EL0_REG MRS_REG_ALT_NAME(CTR_EL0) From nobody Mon Apr 13 14:24:08 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 4fvV5h5JK7z6ZFCS for ; Mon, 13 Apr 2026 14:24:08 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvV5h1lSXz3r03 for ; Mon, 13 Apr 2026 14:24:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YwCaJzH/lbHln/Aiy2tJi6nx6L4Jvfjwu50kJQ9vVGQ=; b=FxxPYisNVBB666p2oBjTRpYYQut/PwG5lVuyb/dFJn1Tpkva9R2AzixjYHelYr4CYzCQ08 hpfND9hDFwBAvz7R5KLYgUZ8OXDtGMisTXNMnGrLk26Mljz5syb2oOLJdA98JK7WXrFXfO Esu6Etzx0nYjqdysB1Fk3LIcUJuyVzSy1K22fgdK5kEPWeaa4fG1/5P34NZMtxk2vmR1Cg P6593WMUGf3D2kZYoR+eBVIgUom2NZ97l9ABvEJuXKaKd7u4hCFjy0RcZ8we6NATQaCm+f CcRn6ATvV5ygZcVX0auWpgd3TAhIao8ecmcc0Zkn3fzmCdb/5786Z1xax5NoBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090248; a=rsa-sha256; cv=none; b=tXGhrA3bAvpGyzIwgkhAM+ttjIMfraajU3EEEZCjod69c642djTZpKj9/DToVfYfrcWeKb 74cEvDR6ZTr1NUFKCK5fj/j67GRQh3b3aLV6J3yLD4Rt+k0Z4bYvWyLiVFLE6/D0RiBNxw AjeWvy6A2JA4FO8TQlWw81mrNu5OX4X77lZ7rzOUBbrokaAl/WM5jfKSh8vX6fUIyG9Nxr YpkaRs+KgBZtrw/Q3gQXbLDEjR0FGfEzYANtA/cjO2np7TGxiXyvI0zYcynuTzrH2hSzmW HVd+Ad/NvxACfRylhFuvrNSvCUkp/4uC80nFVXWz0JL8YycWb7rzMQb392UtBg== 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=1776090248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YwCaJzH/lbHln/Aiy2tJi6nx6L4Jvfjwu50kJQ9vVGQ=; b=hVIYtwMwncseuXyZEodSXse5z0PtSYDg4M5sUsaubQ3MtppseYRw025uLRK0T2Fk4U2gtd vApLNxFC1HswD3q5jhzhCk0WnPxRUWek7uE7PWSWJm6DDsfcRcU9gwwcRvueP0vApYcWPW y63+hl9Nu8lVn9yUNF6UcPBJ+EOtDI5caDcu2xm6CrI/KSMGZizXRDyzYtJDfhwcubX+mx uTa2j78muy6po9OMP3unkToD9ddyIhlbyi9WBMItQFOtkhuKLR1iOwoPwOtDLYTNfRfaBH E6KZJ3vws1ZLi4GR43exPLdKyB2BaI2o9OYFH/IwZ1Glx1neQAuWVpLyxoKOig== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvV5h13WDz173Z for ; Mon, 13 Apr 2026 14:24:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4722f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:24:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Harry Moulton From: Andrew Turner Subject: git: aa555b6004d6 - main - arm64: mte: add system register definitions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: aa555b6004d605ff0fd48832340b0c32f14d51d4 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:24:08 +0000 Message-Id: <69dcfc88.4722f.573bcad1@gitrepo.freebsd.org> The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=aa555b6004d605ff0fd48832340b0c32f14d51d4 commit aa555b6004d605ff0fd48832340b0c32f14d51d4 Author: Harry Moulton AuthorDate: 2026-04-13 11:53:37 +0000 Commit: Andrew Turner CommitDate: 2026-04-13 14:23:05 +0000 arm64: mte: add system register definitions Add system register and bit field definitions for Memory Tagging Extension (MTE) in ARMv8.5. Reviewed by: andrew Sponsored by: Arm Ltd Signed-off-by: Harry Moulton Co-authored-by: Andrew Turner Differential Revision: https://reviews.freebsd.org/D55945 --- sys/arm64/include/armreg.h | 96 +++++++++++++++++++++++++++++++++++++++++- sys/arm64/include/hypervisor.h | 24 +++++++++++ 2 files changed, 118 insertions(+), 2 deletions(-) diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index 257239b923af..6447f0064d33 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -232,6 +232,11 @@ #define CLIDR_ICB_WIDTH 3 #define CLIDR_ICB_MASK (UL(0x7) << CLIDR_ICB_SHIFT) #define CLIDR_ICB_VAL(x) ((x) & CLIDR_ICB_MASK) +#define CLIDR_TTYPE_MASK UL(0x7) +#define CLIDR_TTYPE_NONE 0x0 /* No tag cache */ +#define CLIDR_TTYPE_SAT 0x1 /* Separate Allocation Tag cache */ +#define CLIDR_TTYPE_UATU 0x2 /* Unified Allocation Tag, unified lines */ +#define CLIDR_TTYPE_UATS 0x3 /* Unified Allocation Tag, separate lines */ /* CNTKCTL_EL1 - Counter-timer Kernel Control Register */ #define CNTKCTL_EL1_op0 3 @@ -399,6 +404,12 @@ #define CSSELR_Level_WIDTH 3 #define CSSELR_Level_MASK (UL(0x7) << CSSELR_Level_SHIFT) #define CSSELR_Level(i) (i << CSSELR_Level_SHIFT) +#define CSSELR_TnD_SHIFT 4 +#define CSSELR_TnD_WIDTH 1 +#define CSSELR_TnD_MASK (UL(0x1) << CSSELR_TnD_SHIFT) +#define CSSELR_TnD_VAL(x) ((x) & CSSELR_TnD_MASK) +#define CSSELR_TnD_DIU (0x0 << CSSELR_TnD_SHIFT) /* Data, Instruction or Unified cache */ +#define CSSELR_TnD_SAT (0x1 << CSSELR_TnD_SHIFT) /* Separate Allocation Tag cache */ /* CTR_EL0 - Cache Type Register */ #define CTR_EL0_REG MRS_REG_ALT_NAME(CTR_EL0) @@ -700,6 +711,7 @@ #define ISS_DATA_DFSC_PF_L2 (0x0e << 0) #define ISS_DATA_DFSC_PF_L3 (0x0f << 0) #define ISS_DATA_DFSC_EXT (0x10 << 0) +#define ISS_DATA_DFSC_TAG (0x11 << 0) #define ISS_DATA_DFSC_EXT_L0 (0x14 << 0) #define ISS_DATA_DFSC_EXT_L1 (0x15 << 0) #define ISS_DATA_DFSC_EXT_L2 (0x16 << 0) @@ -776,6 +788,30 @@ #define FAR_EL12_CRm 0 #define FAR_EL12_op2 0 +/* GCR_EL1 - Tag Control Register */ +#define GCR_EL1_REG MRS_REG_ALT_NAME(GCR_EL1) +#define GCR_EL1_op0 3 +#define GCR_EL1_op1 0 +#define GCR_EL1_CRn 1 +#define GCR_EL1_CRm 0 +#define GCR_EL1_op2 6 +#define GCR_Exclude_SHIFT 0 +#define GCR_Exclude_MASK (UL(0xffff) << GCR_Exclude_SHIFT) +#define GCR_RRND_SHIFT 16 +#define GCR_RRND (UL(0x1) << GCR_RRND_SHIFT) + +/* GMID_EL1 - Multiple tag transfer ID Register */ +#define GMID_EL1_REG MRS_REG_ALT_NAME(GMID_EL1) +#define GMID_EL1_op0 3 +#define GMID_EL1_op1 1 +#define GMID_EL1_CRn 0 +#define GMID_EL1_CRm 0 +#define GMID_EL1_op2 4 +#define GMID_BS_SHIFT 0 +#define GMID_BS_WIDTH 4 +#define GMID_BS_MASK (UL(0xf) << GMID_BS_SHIFT) +#define GMID_BS_SIZE(reg) (((reg) & GMID_BS_MASK) >> GMID_BS_SHIFT) + /* ICC_CTLR_EL1 */ #define ICC_CTLR_EL1_EOIMODE (1U << 1) @@ -2043,6 +2079,7 @@ #define MAIR_DEVICE_nGnRE UL(0x04) #define MAIR_NORMAL_NC UL(0x44) #define MAIR_NORMAL_WT UL(0xbb) +#define MAIR_NORMAL_TG UL(0xf0) #define MAIR_NORMAL_WB UL(0xff) /* MAIR_EL12 */ @@ -2656,6 +2693,18 @@ #define PMXEVTYPER_EL0_CRm 13 #define PMXEVTYPER_EL0_op2 1 +/* RGSR_EL1 - Random Allocation Tag Seed Register */ +#define RGSR_EL1_REG MRS_REG_ALT_NAME(RGSR_EL1) +#define RGSR_EL1_op0 3 +#define RGSR_EL1_op1 0 +#define RGSR_EL1_CRn 1 +#define RGSR_EL1_CRm 0 +#define RGSR_EL1_op2 5 +#define RGSR_TAG_SHIFT 0 +#define RGSR_TAG_MASK (UL(0xf) << RGSR_TAG_SHIFT) +#define RGSR_SEED_SHIFT 8 +#define RGSR_SEED_MASK (UL(0xffff) << RGSR_SEED_SHIFT) + /* RNDRRS */ #define RNDRRS_REG MRS_REG_ALT_NAME(RNDRRS) #define RNDRRS_op0 3 @@ -2710,8 +2759,18 @@ #define SCTLR_BT0 (UL(0x1) << 35) #define SCTLR_BT1 (UL(0x1) << 36) #define SCTLR_ITFSB (UL(0x1) << 37) -#define SCTLR_TCF0_MASK (UL(0x3) << 38) -#define SCTLR_TCF_MASK (UL(0x3) << 40) +#define SCTLR_TCF0_SHIFT 38 +#define SCTLR_TCF0_MASK (UL(0x3) << SCTLR_TCF0_SHIFT) +#define SCTLR_TCF0_NONE (UL(0x0) << SCTLR_TCF0_SHIFT) +#define SCTLR_TCF0_SYNC (UL(0x1) << SCTLR_TCF0_SHIFT) +#define SCTLR_TCF0_ASYNC (UL(0x2) << SCTLR_TCF0_SHIFT) +#define SCTLR_TCF0_ASYM (UL(0x3) << SCTLR_TCF0_SHIFT) +#define SCTLR_TCF_SHIFT 40 +#define SCTLR_TCF_MASK (UL(0x3) << SCTLR_TCF_SHIFT) +#define SCTLR_TCF_NONE (UL(0x0) << SCTLR_TCF_SHIFT) +#define SCTLR_TCF_SYNC (UL(0x1) << SCTLR_TCF_SHIFT) +#define SCTLR_TCF_ASYNC (UL(0x2) << SCTLR_TCF_SHIFT) +#define SCTLR_TCF_ASYM (UL(0x3) << SCTLR_TCF_SHIFT) #define SCTLR_ATA0 (UL(0x1) << 42) #define SCTLR_ATA (UL(0x1) << 43) #define SCTLR_DSSBS (UL(0x1) << 44) @@ -2821,6 +2880,15 @@ #define REVIDR_EL1_CRm 0 #define REVIDR_EL1_op2 6 +/* TCO - Tag Check Override */ +#define TCO MRS(TCO) +#define TCO_REG MRS_REG_ALT_NAME(TCO) +#define TCO_op0 3 +#define TCO_op1 3 +#define TCO_CRn 4 +#define TCO_CRm 2 +#define TCO_op2 7 + /* TCR_EL1 - Translation Control Register */ #define TCR_EL1_REG MRS_REG_ALT_NAME(TCR_EL1) #define TCR_EL1_op0 3 @@ -2936,6 +3004,30 @@ #define TCR_EL12_CRm 0 #define TCR_EL12_op2 2 +/* TFSRE0_EL1 - Tag Fault Status Register (EL0) */ +#define TFSRE0_EL1_REG MRS_REG_ALT_NAME(TFSRE0_EL1) +#define TFSRE0_EL1_op0 3 +#define TFSRE0_EL1_op1 0 +#define TFSRE0_EL1_CRn 5 +#define TFSRE0_EL1_CRm 6 +#define TFSRE0_EL1_op2 1 +#define TFSRE0_TF0_SHIFT 0 +#define TFSRE0_TF0_MASK (UL(0x1) << TFSRE0_TF0_SHIFT) +#define TFSRE0_TF1_SHIFT 1 +#define TFSRE0_TF1_MASK (UL(0x1) << TFSRE0_TF1_SHIFT) + +/* TFSR_EL1 - Tag Fault Status Register */ +#define TFSR_EL1_REG MRS_REG_ALT_NAME(TFSR_EL1) +#define TFSR_EL1_op0 3 +#define TFSR_EL1_op1 0 +#define TFSR_EL1_CRn 5 +#define TFSR_EL1_CRm 6 +#define TFSR_EL1_op2 0 +#define TFSR_TF0_SHIFT 0 +#define TFSR_TF0_MASK (UL(0x1) << TFSR_TF0_SHIFT) +#define TFSR_TF1_SHIFT 1 +#define TFSR_TF1_MASK (UL(0x1) << TFSR_TF1_SHIFT) + /* TTBR0_EL1 & TTBR1_EL1 - Translation Table Base Register 0 & 1 */ #define TTBR_ASID_SHIFT 48 #define TTBR_ASID_MASK (0xfffful << TTBR_ASID_SHIFT) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index 3ee5c12f2265..73adf89b4182 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -2062,6 +2062,16 @@ #define SCTLR_EL2_EIS (0x1UL << SCTLR_EL2_EIS_SHIFT) #define SCTLR_EL2_EE_SHIFT 25 #define SCTLR_EL2_EE (0x1UL << SCTLR_EL2_EE_SHIFT) +#define SCTLR_EL2_ITFSB_SHIFT 37 +#define SCTLR_EL2_ITFSB (0x1UL << SCTLR_EL2_ITFSB_SHIFT) +#define SCTLR_EL2_TCF0_SHIFT 38 +#define SCTLR_EL2_TCF0 (0x2UL << SCTLR_EL2_TCF0_SHIFT) +#define SCTLR_EL2_TCF_SHIFT 40 +#define SCTLR_EL2_TCF (0x2UL << SCTLR_EL2_TCF_SHIFT) +#define SCTLR_EL2_ATA0_SHIFT 42 +#define SCTLR_EL2_ATA0 (0x1UL << SCTLR_EL2_ATA0_SHIFT) +#define SCTLR_EL2_ATA_SHIFT 43 +#define SCTLR_EL2_ATA (0x1UL << SCTLR_EL2_ATA_SHIFT) /* TCR_EL2 - Translation Control Register */ #define TCR_EL2_RES1 ((0x1UL << 31) | (0x1UL << 23)) @@ -2104,6 +2114,20 @@ #define TCR_EL2_HWU62 (1UL << TCR_EL2_HWU62_SHIFT) #define TCR_EL2_HWU \ (TCR_EL2_HWU59 | TCR_EL2_HWU60 | TCR_EL2_HWU61 | TCR_EL2_HWU62) +#define TCR_EL2_TCMA_SHIFT 30 +#define TCR_EL2_TCMA (1UL << TCR_EL2_TCMA_SHIFT) + +/* TFSR_EL2 - Tag Fault Status Register EL2 */ +#define TFSR_EL2_REG MRS_REG_ALT_NAME(TFSR_EL2) +#define TFSR_EL2_op0 3 +#define TFSR_EL2_op1 4 +#define TFSR_EL2_CRn 5 +#define TFSR_EL2_CRm 6 +#define TFSR_EL2_op2 0 +#define TFSR_TF0_SHIFT 0 +#define TFSR_TF0_MASK (UL(0x1) << TFSR_TF0_SHIFT) +#define TFSR_TF1_SHIFT 1 +#define TFSR_TF1_MASK (UL(0x1) << TFSR_TF1_SHIFT) /* VMPDIR_EL2 - Virtualization Multiprocessor ID Register */ #define VMPIDR_EL2_U 0x0000000040000000 From nobody Mon Apr 13 14:24:09 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 4fvV5j4RGlz6ZFM1 for ; Mon, 13 Apr 2026 14:24:09 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvV5j2fFkz3qcq for ; Mon, 13 Apr 2026 14:24:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5x8AWcqgg1O98p5uiIGvvmronIiky0y76GlwClvtrk8=; b=FvybQT7nqymAWfdKyTSIiKBjzO/MRiVrkdxo9KFjNhCkfWZ5VcIneV4L9/t+Zo4Dw/eC5v GYDCSHg7h8vX6SK3pBetEdDv8jY5FAmEp/Feh7Lg9MyghpyJ7LIQwCRjFLBfwc+NZr8kLi N5Kt5ngBsNVoMU5/IrLh1brvTA9Kfe+0XYJ8oMobhtETTU4chjdDERwlwxB2vlfiTZKoCg R9GG/pPOWpOgFFtJMzrF5oURBnLd8kltr2MU39IxviEG9ZYP9vmm5bEJlcMZT/urgPt8JX o6Ypq1c8jNmIan8yWiLk9Kk37F4vbjzomyuYP6TJElAgArMEr0nQT7auPQdrbw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090249; a=rsa-sha256; cv=none; b=oFQtEf3PLJmim7gJ2Q0UJqTrHEzqCvWVOq4Q+sqmRJJeOmnbHmJZSbH17jTNv9x0mqh275 FXrpim0SaXbld6uCISeUpeGiXqt7R39+RHgeccwDB/NsEVF8HaRaxK4d+EjasEQc8HdXEJ Kf7HISzMZzF6kTfAevLFN6tXuq0HVtpA2CQ6kIHZqimb5Sz9oGdWzZMX6DMtLjYlWVfnNQ 1jaPbconV/Q+jhgDwnmuzHxmC4Bpq/NqUPK2mu8lhbtdqoAvi6vmqODGLfmjLQjozxxPRg pv46RUwfjTTE/tNFFvfrV9gUiEB6JeDuKiFNAsy4ckfQtAp75U9HT8dOh7MiVA== 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=1776090249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5x8AWcqgg1O98p5uiIGvvmronIiky0y76GlwClvtrk8=; b=mAbjga95z84Pj2sZkdh3yBda9X+3trM0RggLGwYyb4oqNnd8PLEDUzeBUgg4PXZg5cdvoi mP0omt1G9+eg78cYA2TmCRTvQDjxiyBau6yx8AtaHTAI+yaRUj8HYqX4Jxj8RnOtyARN06 sFuCpTNeShwnwAT0YT/Yx/fTSGl54OQwp0hiYtn7PoZQZ64ouUxUi/u2Y6VMvlABVAkZCo 3YgsDofL/1Xny7QWUZMjFV6LKhFjESjzYKp/dtkHRDLtZKLPc9BsHXNI7VlTRQEtqKpOWm IYBhO37iz5CDlwuj1/+lZ1i1OjKieCIecX9q2PKag29doA+T8n7XZEh6Ss7uQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvV5j1hQlz16hY for ; Mon, 13 Apr 2026 14:24:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 464ef by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:24:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Harry Moulton From: Andrew Turner Subject: git: 58de79153622 - main - arm64: mte: configure initial state for system registers 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 58de79153622145cb6fc57bc92c4de678876992f Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:24:09 +0000 Message-Id: <69dcfc89.464ef.4e312925@gitrepo.freebsd.org> The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=58de79153622145cb6fc57bc92c4de678876992f commit 58de79153622145cb6fc57bc92c4de678876992f Author: Harry Moulton AuthorDate: 2026-04-13 11:54:38 +0000 Commit: Andrew Turner CommitDate: 2026-04-13 14:23:05 +0000 arm64: mte: configure initial state for system registers The fields in SCTLR_EL1 and HCR_EL2 for enabling MTE are set, and if the ID_AA64PFR1_EL1 register shows MTE is present, the GCR_EL1 register is also configured, and the two TFSR registers which hold pending tag check faults are cleared. Reviewed by: andrew Sponsored by: Arm Ltd Signed-off-by: Harry Moulton Differential Revision: https://reviews.freebsd.org/D55946 --- sys/arm64/arm64/locore.S | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index f1228235dfe7..4c8e0c680321 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -398,7 +398,7 @@ LENTRY(enter_kernel_el) */ /* Configure the Hypervisor */ - ldr x2, =(HCR_RW | HCR_APK | HCR_API) + ldr x2, =(HCR_RW | HCR_APK | HCR_API | HCR_ATA) msr hcr_el2, x2 /* Stash value of HCR_EL2 for later */ @@ -1063,6 +1063,21 @@ LENTRY(start_mmu) isb ldr x2, mair + + /* + * If MTE is supported, configure GCR_EL1 and clear the TFSR registers of + * any pending tag check faults + */ + CHECK_CPU_FEAT(x3, ID_AA64PFR1, MTE, MTE, 1f) + + /* Set GCR_EL1, non-zero tags excluded by default */ + mov x3, #(GCR_Exclude_MASK | GCR_RRND) + msr GCR_EL1_REG, x3 + + /* Clear any pending tag check faults */ + msr TFSR_EL1_REG, xzr + msr TFSRE0_EL1_REG, xzr +1: msr mair_el1, x2 /* From nobody Mon Apr 13 14:24:05 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 4fvV5l33kZz6ZFPH for ; Mon, 13 Apr 2026 14:24:11 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvV5l01Qtz3qmY for ; Mon, 13 Apr 2026 14:24:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090251; 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=dj939GV4e2wF3lll7PVMrZNqi9H0DzxMiu9r3JhNzOk=; b=Cv9lR8PAgEv0a6WGtf20/k6XzhisJ1eJKuuzj7q6iTHnUyvKovbtT4W9W97sSspZ3u4374 QNIoqmJgXjJDJaZBRGslNHdoS5uX0tVHUMW0gQtd+Srg8459egwS5sEzCxk+9CS5JA85/+ dd03DrJTylGhVihNmWmmx4x3WutsWNsoN0PuA5GIM412G4sDqbPudmexNLRutiThU/l9cA 0X2DtOwS1gujYhiazcY/PovwGW9GtWnJZdIcb9/QBTcRXAUbtIgTYagEajGAf8YQYr7vrd IhTo57yGybxSi1lN3MLRFpM7EGsIeswVfoZWjixpRnQuOeP1iXMdlp47WhNTig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090251; a=rsa-sha256; cv=none; b=nz/7WmzLWKjc2no7fIBc7kPEz8hUYJjRpc11dt+UzI4mOGnvxrH/psZG84Xlul878kM3BS mcQpLh8vze5+6RmM2vtaum1GBclwqJGFjeQX1ySIOW8Dn9//GAWRlNujKTEB1N/BfyUDiF Gr0kUpaOfIo1hPyk3xrOvbKU2fNt73vn0d0Qt1jM5O4B5J+R6bJgks+XKme7bufJHcxCQk Fv8vyNFiDfPhsTHA/26tQHsDloCSw/9FQ4R7+ZmkjqAJlugvVkY2fJ9lS4k9w+DPJuVkBz gzRPM6j/bZiFg2XqCBhwWoMEOwcQrvgSy1m64QEUFG3ffSbnzkKQ2mRJY8DgqQ== 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=1776090251; 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=dj939GV4e2wF3lll7PVMrZNqi9H0DzxMiu9r3JhNzOk=; b=ZNW5xPWFm/fUBqjZyBolNnRMj65XGNYIEgRTmXBTCvl7cXKV8qi8T22WtMwjd7jYdigJKh 0oZFfiTtgBhdm6PKoHudjc+1yRhcKgJB/slKBoIle/H0O1ZwUWWDLWq0CZqcsNDlYesjSQ 8IRLCTO3xZqE42BBkWsUsHakQJBtkHr/IMgrxhY2P+q6+jAQGGI1ugUtqVYI9ihXSklA9M BWBGq9aUgb84PuAy0k3FlJ1CPLP05Kcdt/vwyodk5sAKasdJdXO4sYQnskgv94AL4j9++I yhLzA8Rrxht4Pyx/diDqAw0yL7dEn24RQ3weuNMQASEVonPUMHzUXS9hNG2d4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvV5k6kjcz172J for ; Mon, 13 Apr 2026 14:24:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4722b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:24:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Andrew Turner Subject: git: 580958427536 - main - arm64: Handle changing self-referential DMAP pages 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 5809584275363d6b2f44981d8561a126a1344360 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:24:05 +0000 Message-Id: <69dcfc85.4722b.421b2c62@gitrepo.freebsd.org> The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=5809584275363d6b2f44981d8561a126a1344360 commit 5809584275363d6b2f44981d8561a126a1344360 Author: Andrew Turner AuthorDate: 2026-04-13 11:50:47 +0000 Commit: Andrew Turner CommitDate: 2026-04-13 14:23:05 +0000 arm64: Handle changing self-referential DMAP pages Support changing the property of a DMAP page that holds it's own page table entry. Because we need to perform a break-before-make sequence to change the properties of pages a page that also holds it's own page table entry will fault in the make part of the sequence. Handle this by mapping the page with a temporary mapping as we already do when demoting a superpage. Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D55943 --- sys/arm64/arm64/pmap.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 7d19c927d369..a23905994846 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -8248,6 +8248,7 @@ pmap_change_props_locked(vm_offset_t va, vm_size_t size, vm_prot_t prot, vm_paddr_t pa; pt_entry_t pte, *ptep, *newpte; pt_entry_t bits, mask; + char *tmpptep; int lvl, rv; PMAP_LOCK_ASSERT(kernel_pmap, MA_OWNED); @@ -8377,6 +8378,24 @@ pmap_change_props_locked(vm_offset_t va, vm_size_t size, vm_prot_t prot, break; } + tmpptep = 0; + if (tmpva <= (vm_offset_t)ptep && + tmpva + pte_size > (vm_offset_t)ptep) { + vm_paddr_t pte_pa; + + mtx_lock(&cmap_lock); + tmpptep = cmap1_addr; + pte_pa = DMAP_TO_PHYS((vm_offset_t)ptep); + pmap_store(cmap1_pte, ATTR_AF | + pmap_sh_attr | ATTR_S1_AP(ATTR_S1_AP_RW) | + ATTR_S1_XN | ATTR_KERN_GP | + ATTR_S1_IDX(VM_MEMATTR_WRITE_BACK) | + PHYS_TO_PTE(pte_pa &~L3_OFFSET) | L3_PAGE); + dsb(ishst); + ptep = (pt_entry_t *)(tmpptep + + ((vm_offset_t)ptep & PAGE_MASK)); + } + /* Update the entry */ pte = pmap_load(ptep); pte &= ~mask; @@ -8403,6 +8422,13 @@ pmap_change_props_locked(vm_offset_t va, vm_size_t size, vm_prot_t prot, break; } + if (tmpptep != 0) { + pmap_clear(cmap1_pte); + pmap_s1_invalidate_page(kernel_pmap, + (vm_offset_t)tmpptep, true); + mtx_unlock(&cmap_lock); + } + pa = PTE_TO_PHYS(pte); if (!VIRT_IN_DMAP(tmpva) && PHYS_IN_DMAP(pa)) { /* From nobody Mon Apr 13 14:31:36 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 4fvVGL20G2z6ZFf0; Mon, 13 Apr 2026 14:31:38 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (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 "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVGL192Lz3t1s; Mon, 13 Apr 2026 14:31:38 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776090698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0qRWZBVdMhE8JeXBQSfmsLXG/eGYlst7osJq/Sea/Do=; b=Sdh+wWE01r3MzGg4+119lBYpk6afN8jVOuroS5VPuRqjwLXcCcLw9ugCX8hf2niiUZS5hp bMLSOiCloCtTwuWcZlBFZrhm7WVMsWyKihA6EPwpVWCwaHWw0hvPHfElfmGjbmNx+wRwQd W9M7bNZ9NzOGInxSuRVnzrEz+o5zIF6Ia6hfzWWBcEfMRgGBOvOiPeRERIfmjgzwzKvtz7 6xcUY5qGRIVTGSjsbGEU0402IwvX+9+4kLzwX+aGgbaGR11IESaUx5CQbUZZ8Oujueaw1m vy1VQkb+ID4IU88TfNMe8vb7dsGUUPVITkytBOiWTnsMWW/Jf/rw6rmc3ZJ2JA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776090698; a=rsa-sha256; cv=none; b=MNcXtVOjyiCd4UwdIzXHLRP+su5o4Q6D8qOF0JbEtM9nIMdYeIf87b6Y1Dl+lAccpCN00H kjGEV2vjYQVRXorcEntp23WT+4oHlHBjAqVJHXjdKao4hD90uJ3JWq7MreHtxOmt4trs4d wdWp4B1wLJveNtP0J/Lcryw5I14TOqNJDC71SBiWzBN61E4pV9In66KuzMHXAhFkqX8m+J qGAgyh2wKSk36H29v+hKSrrS4uydNWLRLHRoKvRju5OJzFHYfSinnfumRkNrPM24z9+C++ yxAQpuAck5gzkgjsUPPik/hHMvyVxq//tdHfct0Oj4fn1eQqcJtHzZ+Kcw7cbg== 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=1776090698; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0qRWZBVdMhE8JeXBQSfmsLXG/eGYlst7osJq/Sea/Do=; b=mWQ5MvfOgx728Y0S4DmMg3Nzut19+kiQHbWaYnmLq+Bm4tJik2caoKFJXnGQKjWWRl0EAX 2uzOcQzkXsu7YniOxpJ4MSljHkGlGo+rSjhYmmyM/OPzD8Zslx0/qT5ydc+//5Nje0kkBc CXJnwZc5brYaLFSHEDrMuK9unICFgLEN3Ct4PoAdTo6foqzvGVw3UJJpTXt75gUwsz2/Xn yT2p3XFV5+0qEiPQN2tdcR23WBSvpVincKsVJWTuUtWmzBrxICHhYxQ7ckn7BV0woq4sbm XEgnpJFicBFJG0TYczZTcJ/SNFe1/nbkevVggUE7xq5p/KzP8fVGCG8cSZxt0w== Received: from ltc.des.dev (2a01cb0585090500922e16fffef1acef.ipv6.abo.wanadoo.fr [IPv6:2a01:cb05:8509:500:922e:16ff:fef1:acef]) (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) (Authenticated sender: des/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fvVGK6vdrzZLy; Mon, 13 Apr 2026 14:31:37 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id 331E2F625; Mon, 13 Apr 2026 16:31:36 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Gleb Smirnoff Cc: Olivier Cochard , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: c5961b6fcfe0 - main - yes: fix argv test race between fork and exec In-Reply-To: (Gleb Smirnoff's message of "Sun, 12 Apr 2026 09:50:11 -0700") References: <69d3ebe6.1f204.7943777e@gitrepo.freebsd.org> User-Agent: Gnus/5.13 (Gnus v5.13) Date: Mon, 13 Apr 2026 16:31:36 +0200 Message-ID: <865x5vextj.fsf@ltc.des.dev> 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: quoted-printable Gleb Smirnoff writes: > This kind of fix doesn't make it 100% flakyless, but adds a 100% guarante= ed 0.1 > second test execution time overhead. In general, all sh(1) based tests t= hat > create a background process should have a wait cycle with `sleep 0.01` in= it. =E2=80=9CLe mieux est l'ennemi du bien=E2=80=9C. This works well enough, a= nd if you're worried about CI runtimes I suggest you look into parallelizing kyua instead. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org From nobody Mon Apr 13 14:43:23 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 4fvVWw2J9kz6ZGlT for ; Mon, 13 Apr 2026 14:43:24 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVWv6RrNz3v4f for ; Mon, 13 Apr 2026 14:43:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091403; 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=NRFgeYIiTvlkWp+YBNB3lblJS/sBTCU4USsy6Le0TTk=; b=bH0HCU6txz0DL7ve+rIhhGw+KakI6idhAChIe52OC5NyIrt3AlHVWy8IinD8T6nDXuZRFn QayCn7OhtR5I99ftMASUv5oiSIgnA5bw6idUoDav55TJSAWL1kSAFEElnlUJ4mx0ficLga jKL6cPMkYA3poYsj4UhRVjHEYxUX1LiUTAYgUiMUelR093m3y1jbY4WjCCr6+IQkY0ZIWx 11pdMQB/yQEZ0Go/zPXECY8RVKj8YYTiKoc8OlaVUjjkHQVI4E2cJWrbkhqM5vAC/7ENHZ fCTGT7nlJeEeHZ3gz4KW4MW+ggdUV79OiN+YVPIo84mitZNl9ZfbgnDHdD8mpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091403; a=rsa-sha256; cv=none; b=HYdPn+kyd14HAANuekjAJ7DjvA+kNF4g8rafeFB3MP03vLKad576uR5pGEVQ52JdzM/WFj I4IMCePxn7FV58qKQ9MfC13BNRXNtVXa7AWMUZbyAhEnKguCxOXQBKyqfcA5wDv/RM8zQf FoTVKU+RoTPFiIBhpHjE/1htmbbT3WnvRgA0UjgdjVqrH/JDQXAzM2Oa1TyZx3GGQ0nzAU xMtyJVrXFoSV2/7/SDV6FB5UChTE7zN8dxY+bZGUOuy8hLIxCkU3xEXZZETwW4vwiV9fkz U23xScgSVNMDAvoGVXyxdGt6TOXOz7q2BojnJaJwNY85KnUcppYoGkP/4lF3Ag== 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=1776091403; 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=NRFgeYIiTvlkWp+YBNB3lblJS/sBTCU4USsy6Le0TTk=; b=ejcA5t5S8ySKKTHoLfFtRbOZ4Ipa1XrKjH8iZ0hRUJuQU5UYnoJ6ewbVG8nemuiA3xegbk /C0w5MDYY21pIUlyPSJxOLTdxeFWYrLzmofeTJR0mnGtSB+VUlZUDk3Z7nfFe2V+kQiePL BEWbPmZbFeNSXqfePz+dMJBbym0Rt42/N06FQ+ohO6h60/4wo2LhrKP2/CyxxVuoCpask5 P088SVR8X8EriN10J6gKVAjWw44+cRKVwGexv+kr+iibQZaS/ZgjkcTXAuhdpUMHvmmXhO FZlpwZM1B3pk0OVSY+zxI8PNUV4w2LGK2IVS0x6eHnaukQBKD2RcwvUp8jwHGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVWv5rzBz17S3 for ; Mon, 13 Apr 2026 14:43:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1953a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: f206751e1280 - stable/14 - kqueue: simplify knote_fdclose() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f206751e1280410a8c911283a92ee9194a3f1ac6 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:23 +0000 Message-Id: <69dd010b.1953a.3480e59e@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=f206751e1280410a8c911283a92ee9194a3f1ac6 commit f206751e1280410a8c911283a92ee9194a3f1ac6 Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:15 +0000 kqueue: simplify knote_fdclose() The influx logic in knote_fdclose() is a little misguided, the resulting wakeup() call should always be redundant: knote_drop_detached() will always issue a wakeup before it returns, so anything waiting on *that* knote that had entered fluxwait should have been woken up then. This is the obvious divergence from the other influx/wakeup pattern in the implementation, which will kn_influx-- and then issue the wakeup after it has processed all of the knotes it can make progress on. While we're here, the kq_knlist cannot shrink, so we can avoid that condition in the loop and avoid potentially excessive wakeups from fluxwait on kqueues that we didn't touch. Reviewed by: kib, markj (cherry picked from commit ff1050d2a366bd288a6ebbf63f98003272513f92) --- sys/kern/kern_event.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 4e7ad058e144..a8e59ff408a4 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2684,7 +2684,6 @@ knote_fdclose(struct thread *td, int fd) struct filedesc *fdp = td->td_proc->p_fd; struct kqueue *kq; struct knote *kn; - int influx; FILEDESC_XLOCK_ASSERT(fdp); @@ -2694,22 +2693,25 @@ knote_fdclose(struct thread *td, int fd) */ TAILQ_FOREACH(kq, &fdp->fd_kqlist, kq_list) { KQ_LOCK(kq); + if (kq->kq_knlistsize <= fd || + SLIST_EMPTY(&kq->kq_knlist[fd])) { + KQ_UNLOCK(kq); + continue; + } -again: - influx = 0; - while (kq->kq_knlistsize > fd && - (kn = SLIST_FIRST(&kq->kq_knlist[fd])) != NULL) { + while ((kn = SLIST_FIRST(&kq->kq_knlist[fd])) != NULL) { if (kn_in_flux(kn)) { - /* someone else might be waiting on our knote */ - if (influx) - wakeup(kq); + /* + * Wait for this knote to stabilize, it could be + * the case that it's in the process of being + * dropped anyways. + */ kq->kq_state |= KQ_FLUXWAIT; msleep(kq, &kq->kq_lock, PSOCK, "kqflxwt", 0); - goto again; + continue; } kn_enter_flux(kn); KQ_UNLOCK(kq); - influx = 1; knote_drop(kn, td); KQ_LOCK(kq); } From nobody Mon Apr 13 14:43:24 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 4fvVWx23nzz6ZGQy for ; Mon, 13 Apr 2026 14:43:25 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVWx0VkCz3vGb for ; Mon, 13 Apr 2026 14:43:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091405; 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=8XkHks80KXO/siDy2wXfLgw52VytXEgWUOM5N1vWYq0=; b=qrS2x1TvLqTV2WZoLlxZ1tx8F0paIxb9EhuFORCM75g/yW7Oyfa9HcDIUCd6phwn7rbZ3x d+Rd1bQHL2nCQq0myfJiT8V6hoE9g+C6I3P8yT8VD5JywqmOPk8fPbo/sxIBJnBC+ERiIT 4ERUoDhRnqsyMirfEbHhBBYNf7WRlBpOVsW5wn5s28UQoHegr5iQJlcCpqlQg6Ut3Lu8DK E1HN+HGXykiUae09u7zDuKEZbgXud0usHTa+JO26s4kaIJ8yUYyjkyIHMPWiyfN41GOTOM TW/mu4WBEkdhm3CCZMgDC9LOBBZ1pdvD0pXQIZUDdc5FWT0RKTHEr0Zkp3q8IA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091405; a=rsa-sha256; cv=none; b=vWjTMbR8VFFjtMY//YiYCfBLonPz904AR7X7HIZ14Z+gppJ8FMOJs/O4X9NClz9r4PcLC1 zn/AzPugbS0/qNNjLuKfXp01zcNC4sfTzjgDMelgIa6QOAcejaoCm7lFPnlxRv4/0mKP5g mlmd3DzRRUcJh3O3LEL/HBzliaDOk6uTFvPjk0a01YRtbmUyzCkpUZviob2Rd12/KStvj9 +DNdM1fnjns1fay7i5p2xeqWAFoYcHt4vVmd4V2wUkENUiAKeS1pR9B8AwQkEdUZx723AE IjIeHslgkepa2CZx4xepsq7LdPBkzugUh1Xed9mr9YlhohtuYSiQi9srVrfP8A== 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=1776091405; 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=8XkHks80KXO/siDy2wXfLgw52VytXEgWUOM5N1vWYq0=; b=Mad0T53UHVEAyJIl3Yrah5azAkKwcatCx9l+k4dmJO1ibCR/+wqvrlHXCQ5HNgkzqz/vV7 h3Vtujg6bkv9VF8Kgvb5NSEunXFRYit/X50any5WaRRy0pfwzz997hJDoReAin3aXcmUie QIqE9rPnufSb1bVQyaGXn4y0MocSkDhvEeFBOUp8Y1b/j/nKq4ZrcngKm/V9neCdNdHnEX TbI/pnxKTiE7Fy70RIeScEXAf263jgrPVry3HjQ5oV4NRiYveN+3+aaVjGGkF/Nby3NoZB FqAdWOV8cCgHIXV5Sd42pAtXFgJdz986wD+bJrYSZ7wPNpWpIVimSL3zjJhdqg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVWw6SPNz17H1 for ; Mon, 13 Apr 2026 14:43:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1a108 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 42a8f973cb90 - stable/14 - kqueue: compare against the size in kqueue_expand 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 42a8f973cb90fa40025586f083e7b13db7f81926 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:24 +0000 Message-Id: <69dd010c.1a108.349f32ce@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=42a8f973cb90fa40025586f083e7b13db7f81926 commit 42a8f973cb90fa40025586f083e7b13db7f81926 Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:16 +0000 kqueue: compare against the size in kqueue_expand This is a cosmetic change, rather than a functional one: comparing the knlistsize against the fd requires a little bit of mental gymnastics to confirm that this is fine and not doing unnecessary work in some cases. Notably, one must consider that kq_knlistsize only grows in KQEXTENT chunks, which means that concurrent threads trying to grow the kqueue to consecutive fds will usually not result in the list being replaced twice. One can also more clearly rule out classes of arithmetic problems in the final `else` branch. Reviewed by: kib, markj (cherry picked from commit 0b4f0e0515d0c7ec855cd654ae5dc562f4931cae) --- sys/kern/kern_event.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index a8e59ff408a4..3df1ed5565d2 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -1859,10 +1859,11 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, to_free = NULL; if (fops->f_isfd) { fd = ident; - if (kq->kq_knlistsize <= fd) { - size = kq->kq_knlistsize; - while (size <= fd) + size = atomic_load_int(&kq->kq_knlistsize); + if (size <= fd) { + do { size += KQEXTENT; + } while (size <= fd); list = malloc(size * sizeof(*list), M_KQUEUE, mflag); if (list == NULL) return ENOMEM; @@ -1870,7 +1871,7 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, if ((kq->kq_state & KQ_CLOSING) != 0) { to_free = list; error = EBADF; - } else if (kq->kq_knlistsize > fd) { + } else if (kq->kq_knlistsize >= size) { to_free = list; } else { if (kq->kq_knlist != NULL) { @@ -1885,6 +1886,7 @@ kqueue_expand(struct kqueue *kq, const struct filterops *fops, uintptr_t ident, kq->kq_knlistsize = size; kq->kq_knlist = list; } + MPASS(error != 0 || kq->kq_knlistsize > fd); KQ_UNLOCK(kq); } } else { From nobody Mon Apr 13 14:43:25 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 4fvVWy4TRgz6ZGlX for ; Mon, 13 Apr 2026 14:43:26 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVWy0bjFz3v4g for ; Mon, 13 Apr 2026 14:43:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091406; 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=1t6/HzLj9ydDuJ8Zazh6zjQikcxNjbeb9TROKza8VVA=; b=NEGiSoI+tfgLPjdPGBf66jgInH8DJHvUa1gUh0bRt8y3M7Vu2V7fQ6sb55CN98XpjAkK/Y 507wWexhsIM6BQBHC4rSYLfBtnHzNnS0ZzqfCEnl8JmPD+gaqaVuGak4oTBgRHzkAK1lav S5UEfUEK7bVhjSeZBrAIIajse5R0XqR+qSYtxC9TY8KQC4aW9ASqUG1sdWxkwtgQTcfesm 39wHGdZ75CtGBg+4wvZdC9AVxVhqHBj9KI/qooARuGXOTxydlITch0GvJXlOtCyXb2/uxl pKUh5ONlFRmfPbIrQzA3IF0/GzRpLgcJRkY9GXhNcev7p/WUi4iie/rMuZxFZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091406; a=rsa-sha256; cv=none; b=b6zQBtf9icMfk3IR9BhRDsR46K1vIPZ2juJimycKdJ3rhRbe3XB0nohyGmk4Fx5qLzb3nw nwyjcnJXADwob5eFg9sjEq62vDOCrzc3K6R7HtdlO57X9qprDZdBsaa4pgV9Cz1JaRFl1h xAobA/06LBKMuofzQI75jSUxyPU15tVTWh49wOE2Crv+EiKNKwXhAiKi703JbpKw1FdrY+ q+12OMefBHyDHI8oF7QhweAskVc7iIryZ8AIIdbmLzMeiD0lHFAn6wnkWueig1FlpClyp+ OIQrq+ap+Sut+7nnXHpVAUBahhpV/U3y2Arvzt9seTNAwQqn72JsiA9DJVGoAA== 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=1776091406; 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=1t6/HzLj9ydDuJ8Zazh6zjQikcxNjbeb9TROKza8VVA=; b=CvkMuEhXZRZAc9+wNfcOU5uv76PVqfhoP5BFDy0z7z3UCddg+ltfseESIaVF3Z2/c//SJn 2Aepr3lgploEoyG+4bX2BebfmGnaauqUqhDVMd1lbQqnicD1dz7NIoOpXGXzGR+g6LesTu eF/qpzgPW4xp8OXGwJO5Uh+d7PZiPEwlswMNjOub+Rsb2HmGSdwqrc00iUoTnq1aGPaZT2 7uPkxnwnggN0O5R1LpCEyp1+YFqZ20tJ5nmgCRBl/bc/SUbb/4siB11uPXgS4sVRyyWsp7 SAe3o0Gyhgx2BuhdyCZZJvkDj/5jOIns+A5N7qWCK/PfKLQW5UI3yV2+HvW2AA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVWx74gtz16t2 for ; Mon, 13 Apr 2026 14:43:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 183b4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 9ef671ef0c6c - stable/14 - lualoader: allow the local module to filter out the BE list 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 9ef671ef0c6c50e85a35d867ef1c7890f9de91af Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:25 +0000 Message-Id: <69dd010d.183b4.36980857@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=9ef671ef0c6c50e85a35d867ef1c7890f9de91af commit 9ef671ef0c6c50e85a35d867ef1c7890f9de91af Author: Kyle Evans AuthorDate: 2026-04-08 12:49:18 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:16 +0000 lualoader: allow the local module to filter out the BE list This allows something like the following local.lua to install a filter to implement its own notion of hidden BEs using a naming convention of a leading dot to hide them: -- file: /boot/lua/local.lua local core = require("core") local function be_hide(be) if core.isSingleUserBoot() then -- All BEs are accepted for single-user return true end local name = be:match("/([^/]+)$") if not name then -- Accept malformed BEs, for whatever reason return true end return name:match("^%.") == nil end if core.bootenvFilter then -- Just in case we need to be compatible with older versions of -- core.lua without the filtering functionality. core.bootenvFilter(be_hide) end -- EOF Requested by: Marek Zarychta Reviewed by: imp (cherry picked from commit bf0881060ecd75ce79683b82ebcd4809eadf7cf5) --- stand/lua/core.lua | 20 ++++++++++++++++++-- stand/lua/core.lua.8 | 13 ++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/stand/lua/core.lua b/stand/lua/core.lua index ccd8213a718d..4091f446e1f1 100644 --- a/stand/lua/core.lua +++ b/stand/lua/core.lua @@ -303,6 +303,15 @@ function core.bootenvDefault() return loader.getenv("zfs_be_active") end +function core.bootenvFilter(func) + local oldf = core.bootenv_filter + + -- Filter contract: returns true if the BE should be kept, false if it + -- should be hidden. + core.bootenv_filter = func + return oldf +end + function core.bootenvList() local bootenv_count = tonumber(loader.getenv(bootenv_list .. "_count")) local bootenvs = {} @@ -330,11 +339,18 @@ function core.bootenvList() for curenv_idx = 0, bootenv_count - 1 do curenv = loader.getenv(bootenv_list .. "[" .. curenv_idx .. "]") if curenv ~= nil and unique[curenv] == nil then - envcount = envcount + 1 - bootenvs[envcount] = curenv unique[curenv] = true + + -- If we have a filter installed (by a local module), we + -- give it a chance to veto the BE. + if not core.bootenv_filter or + core.bootenv_filter(curenv) then + envcount = envcount + 1 + bootenvs[envcount] = curenv + end end end + return bootenvs end diff --git a/stand/lua/core.lua.8 b/stand/lua/core.lua.8 index de43d3e2b220..325320b2fce8 100644 --- a/stand/lua/core.lua.8 +++ b/stand/lua/core.lua.8 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd March 29, 2025 +.Dd April 8, 2026 .Dt CORE.LUA 8 .Os .Sh NAME @@ -164,6 +164,17 @@ is set in kernels will be autodetected from the current system. .It Fn core.bootenvDefault Returns the default boot environment, nil if unset. +.It Fn core.bootenvFilter func +Installs a filter +.Fa func +into +.Fn core.bootenvList . +If the +.Fa func +returns true, then the boot environment is retained in the list. +Otherwise, the boot environment is hidden. +The old filter, if any, is returned to allow the caller to compose a filter on +top of another filter. .It Fn core.bootenvList Returns a table of boot environments, or an empty table. These will be picked up using the From nobody Mon Apr 13 14:43:27 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 4fvVX03yscz6ZGdv for ; Mon, 13 Apr 2026 14:43:28 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVWz1nk4z3vLd for ; Mon, 13 Apr 2026 14:43:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091407; 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=KmetWQpMXdSoy71SPtgt508a4gOXRnGmxAtwVqHcsIY=; b=nfBYGlPc8S+4LLeynfbxDog8lsscLANIvGdLF8G1pWSFFX9ih6sXvQvY3OWEAnSLmfqo1y Y+6x1bG9ZihfsoriY5ip7xdYQzqd4DUqnsnTwjdllJmJJ6c/xchtRfOh2WK9lpL8WUvfW5 8JT5AlGDP5qRaWeG/HiTNHSB2eh9YXZZ8AcaaA5wWL1zbe3Npar108o17fIKWc5nUuF5kp ewwIMz+x2KpO2Ht1Hh81h3mQMHvgjk+T9+ocR8FqSNdq52W6s46NIlsRIYhJsbq9an7AgK m2uB6odL97nfYgW1hINc2EWxE21vOMyRdwrIb/FlEXuOQtikS4+tzxoKyoFgCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091407; a=rsa-sha256; cv=none; b=LCnRcUqCGGsNU9NcPmsJwZ9f9M0mB0keZGFv0aEULZOwg0462Wwgp/N+K6bQDBbn7Aq4+k wDTMHcw4uK9rRjcKFVftzTjMBPf9FbENfw6YE2arMf5Va6iOQDjiHg6REe/gIiiXVc0IWC fuOJTm1fCIInouofWgqq/43rVvjNLe2i4iCSClDLXHVeaXjVoLtJWSylvsx21DIRSL5EdH 64FaZbuBYgocj4SOwFE2TQ5QGz5rKvRhBZMBuj7CSX84ChyOxgJDQZCHQ7gVpjOwMfui2t TLMe5LMuwqQrxmtpaW9bXsogaR4G1LDXwu2UWNImH9Vhrlks5deG9pre9mdprg== 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=1776091407; 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=KmetWQpMXdSoy71SPtgt508a4gOXRnGmxAtwVqHcsIY=; b=r1rzyUsQoCP/46GhtK4WRu3Wk+BQJZ36db96xBu0R1i+O+EYURlojlNau/nndf5lMfK4D7 elNJzal2RXkS9OIpstIhcrGQi81VvpVc0Wryc2P4aITM5+iJDSZ95s0waU4nvjITNyi7kE +qcDUpT20nYyZH+CbGtfdi130tk6g6be9xLCMd7fH2YWRE/11P5dHHu82+SQWgRQTI1S3K 8kXizRsLpwuqWH5vhUAnoFsuEhTvkK27FKHAsU4T4M/bWj9OyrYfuLhk+8ky8QhrDHpKW2 EpVuItIT3OcE3+mW/b5nxCB+U6Hkfrh1mbvOJZTbo+R0uOYtsmN8GjYk9MUV4Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVWz0l6bz16SQ for ; Mon, 13 Apr 2026 14:43:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 181df by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 6706984194d7 - stable/14 - libc: fix memfd_create's HUGETLB handling 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 6706984194d76b8eaa13508c7b781e817cb76df2 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:27 +0000 Message-Id: <69dd010f.181df.3550b148@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=6706984194d76b8eaa13508c7b781e817cb76df2 commit 6706984194d76b8eaa13508c7b781e817cb76df2 Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:17 +0000 libc: fix memfd_create's HUGETLB handling The 'simplification' commit referenced below actually broke one aspect of MFD_HUGETLB: the caller isn't supposed to be required to specify a size. MFD_HUGETLB by itself without a shift mask just requests a large page, so we revert that part of memfd_create() back. While we're here, fix up the related parts of the manpages a little bit, since MFD_HUGETLB is actually supported. The manpage claims that we would return ENOSYS if forced mappings weren't supported, but this was actually not true. However, that seems like a very important distinction to make between ENOSYS and EOPNOTSUPP, so fix the implementation to match the docs. Reviewed by: kib, markj (cherry picked from commit 9a8d333368baef356f0a611b47ec592568dd14f9) --- lib/libc/gen/memfd_create.c | 23 +++++++++++++------ lib/libc/sys/shm_open.2 | 31 ++++++++++++++++++++++---- tests/sys/posixshm/memfd_test.c | 35 +++++++++++++++++++++++++++++ tests/sys/posixshm/posixshm.h | 45 ++++++++++++++++++++++++++++++++++++++ tests/sys/posixshm/posixshm_test.c | 38 +++++++++++--------------------- 5 files changed, 136 insertions(+), 36 deletions(-) diff --git a/lib/libc/gen/memfd_create.c b/lib/libc/gen/memfd_create.c index 78131f46d7b1..8e6c93be4337 100644 --- a/lib/libc/gen/memfd_create.c +++ b/lib/libc/gen/memfd_create.c @@ -95,16 +95,25 @@ memfd_create(const char *name, unsigned int flags) npgs = getpagesizes(pgs, nitems(pgs)); if (npgs == -1) goto clean; - pgsize = (size_t)1 << ((flags & MFD_HUGE_MASK) >> MFD_HUGE_SHIFT); - for (pgidx = 0; pgidx < npgs; pgidx++) { - if (pgsize == pgs[pgidx]) - break; - } - if (pgidx == npgs) { - errno = EOPNOTSUPP; + else if (npgs == 1) { + errno = ENOSYS; goto clean; } + if ((flags & MFD_HUGE_MASK) == 0) { + pgidx = 1; + } else { + pgsize = 1UL << ((flags & MFD_HUGE_MASK) >> MFD_HUGE_SHIFT); + for (pgidx = 1; pgidx < npgs; pgidx++) { + if (pgsize == pgs[pgidx]) + break; + } + if (pgidx == npgs) { + errno = EOPNOTSUPP; + goto clean; + } + } + memset(&slc, 0, sizeof(slc)); slc.psind = pgidx; slc.alloc_policy = SHM_LARGEPAGE_ALLOC_DEFAULT; diff --git a/lib/libc/sys/shm_open.2 b/lib/libc/sys/shm_open.2 index 8bea939690ba..c4361b87d8d7 100644 --- a/lib/libc/sys/shm_open.2 +++ b/lib/libc/sys/shm_open.2 @@ -26,7 +26,7 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd January 30, 2023 +.Dd April 13, 2026 .Dt SHM_OPEN 2 .Os .Sh NAME @@ -342,7 +342,25 @@ Allow adding seals to the resulting file descriptor using the .Xr fcntl 2 command. .It Dv MFD_HUGETLB -This flag is currently unsupported. +Create a memfd backed by a +.Dq largepage +object. +One of the +.Dv MFD_HUGE_* +flags defined in +.In sys/mman.h +may be included to specify a fixed size. +If a specific size is not requested, the smallest supported large page size is +selected. +.Pp +The behavior documented above for the +.Fn shm_create_largepage +.Fa psind +argument also applies to largepage objects created by +.Fn memfd_create , +and the +.Dv SHM_LARGEPAGE_ALLOC_DEFAULT +policy will always be used. .El .Sh RETURN VALUES If successful, @@ -457,17 +475,22 @@ argument was too long. .Pp An invalid or unsupported flag was included in .Fa flags . +.It Bq Er EINVAL +A hugetlb mapping was requested, but +.Dv MFD_HUGETLB +was not specified in +.Fa flags . .It Bq Er EMFILE The process has already reached its limit for open file descriptors. .It Bq Er ENFILE The system file table is full. .It Bq Er ENOSYS -In -.Fa memfd_create , .Dv MFD_HUGETLB was specified in .Fa flags , and this system does not support forced hugetlb mappings. +.It Bq Er EOPNOTSUPP +This system does not support the requested hugetlb page size. .El .Pp .Fn shm_open diff --git a/tests/sys/posixshm/memfd_test.c b/tests/sys/posixshm/memfd_test.c index 5cae184206b1..387eca4cafe9 100644 --- a/tests/sys/posixshm/memfd_test.c +++ b/tests/sys/posixshm/memfd_test.c @@ -34,6 +34,8 @@ #include #include +#include "posixshm.h" + ATF_TC_WITHOUT_HEAD(basic); ATF_TC_BODY(basic, tc) { @@ -277,6 +279,38 @@ ATF_TC_BODY(immutable_seals, tc) close(fd); } +ATF_TC_WITHOUT_HEAD(hugetlb); +ATF_TC_BODY(hugetlb, tc) +{ + size_t ps[MAXPAGESIZES], pgsize; + int fd, pscnt; + + pscnt = pagesizes(ps, false); +#define MFD_HUGE_SUPPORTED(sz) (sz <= (1 << 24)) +#define MFD_HUGE_FLAGS(sz) (((ffsl(sz) - 1U) << MFD_HUGE_SHIFT) & MFD_HUGE_MASK) + for (int psidx = 1; psidx < pscnt; psidx++) { + pgsize = ps[psidx]; + + if (!MFD_HUGE_SUPPORTED(pgsize)) + continue; + + ATF_REQUIRE_MSG((fd = memfd_create("...", + MFD_HUGETLB | MFD_HUGE_FLAGS(pgsize))) != -1, + "Creating a %zu-size hugetlb memfd", pgsize); + } + + fd = memfd_create("...", MFD_HUGETLB); + if (pscnt == 1) { + ATF_REQUIRE_MSG(fd == -1, + "Creating an unspecified hugetlb memfd without large page support"); + ATF_REQUIRE(errno == ENOSYS); + } else { + ATF_REQUIRE_MSG(fd != -1, + "Creating an unspecified hugetlb memfd with large page support"); + close(fd); + } +} + ATF_TP_ADD_TCS(tp) { @@ -289,5 +323,6 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, get_seals); ATF_TP_ADD_TC(tp, dup_seals); ATF_TP_ADD_TC(tp, immutable_seals); + ATF_TP_ADD_TC(tp, hugetlb); return (atf_no_error()); } diff --git a/tests/sys/posixshm/posixshm.h b/tests/sys/posixshm/posixshm.h new file mode 100644 index 000000000000..84c73e0d10df --- /dev/null +++ b/tests/sys/posixshm/posixshm.h @@ -0,0 +1,45 @@ +/*- + * + * Copyright (c) 2020 Klara, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +#include + +#include + +static int +pagesizes(size_t ps[MAXPAGESIZES], bool required) +{ + int pscnt; + + pscnt = getpagesizes(ps, MAXPAGESIZES); + ATF_REQUIRE_MSG(pscnt != -1, "getpagesizes failed; errno=%d", errno); + ATF_REQUIRE_MSG(ps[0] != 0, "psind 0 is %zu", ps[0]); + ATF_REQUIRE_MSG(pscnt <= MAXPAGESIZES, "invalid pscnt %d", pscnt); + if (pscnt == 1 && required) + atf_tc_skip("no large page support"); + return (pscnt); +} + diff --git a/tests/sys/posixshm/posixshm_test.c b/tests/sys/posixshm/posixshm_test.c index a3ce18f855f5..406ad5011884 100644 --- a/tests/sys/posixshm/posixshm_test.c +++ b/tests/sys/posixshm/posixshm_test.c @@ -50,6 +50,8 @@ #include +#include "posixshm.h" + #define TEST_PATH_LEN 256 static char test_path[TEST_PATH_LEN]; static char test_path2[TEST_PATH_LEN]; @@ -1240,20 +1242,6 @@ shm_open_large(int psind, int policy, size_t sz) return (fd); } -static int -pagesizes(size_t ps[MAXPAGESIZES]) -{ - int pscnt; - - pscnt = getpagesizes(ps, MAXPAGESIZES); - ATF_REQUIRE_MSG(pscnt != -1, "getpagesizes failed; errno=%d", errno); - ATF_REQUIRE_MSG(ps[0] != 0, "psind 0 is %zu", ps[0]); - ATF_REQUIRE_MSG(pscnt <= MAXPAGESIZES, "invalid pscnt %d", pscnt); - if (pscnt == 1) - atf_tc_skip("no large page support"); - return (pscnt); -} - ATF_TC_WITHOUT_HEAD(largepage_basic); ATF_TC_BODY(largepage_basic, tc) { @@ -1262,7 +1250,7 @@ ATF_TC_BODY(largepage_basic, tc) size_t ps[MAXPAGESIZES]; int error, fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); zeroes = calloc(1, ps[0]); ATF_REQUIRE(zeroes != NULL); for (int i = 1; i < pscnt; i++) { @@ -1318,7 +1306,7 @@ ATF_TC_BODY(largepage_config, tc) size_t ps[MAXPAGESIZES + 1]; /* silence warnings if MAXPAGESIZES == 1 */ int error, fd; - (void)pagesizes(ps); + (void)pagesizes(ps, true); fd = shm_open(SHM_ANON, O_CREAT | O_RDWR, 0); ATF_REQUIRE_MSG(fd >= 0, "shm_open failed; error=%d", errno); @@ -1380,7 +1368,7 @@ ATF_TC_BODY(largepage_mmap, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); @@ -1476,7 +1464,7 @@ ATF_TC_BODY(largepage_munmap, tc) size_t ps[MAXPAGESIZES], ps1; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); ps1 = ps[i - 1]; @@ -1527,7 +1515,7 @@ ATF_TC_BODY(largepage_madvise, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1596,7 +1584,7 @@ ATF_TC_BODY(largepage_mlock, tc) "sysctlbyname(vm.stats.vm.v_user_wire_count) failed; error=%d", errno); - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { if (ps[i] / ps[0] > max_wired - wired) { /* Cannot wire past the limit. */ @@ -1639,7 +1627,7 @@ ATF_TC_BODY(largepage_msync, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1698,7 +1686,7 @@ ATF_TC_BODY(largepage_mprotect, tc) size_t ps[MAXPAGESIZES]; int fd, pscnt; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { /* * Reserve a contiguous region in the address space to avoid @@ -1768,7 +1756,7 @@ ATF_TC_BODY(largepage_minherit, tc) pid_t child; int fd, pscnt, status; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); addr = mmap(NULL, ps[i], PROT_READ | PROT_WRITE, MAP_SHARED, fd, @@ -1856,7 +1844,7 @@ ATF_TC_BODY(largepage_pipe, tc) int fd, pfd[2], pscnt, status; pid_t child; - pscnt = pagesizes(ps); + pscnt = pagesizes(ps, true); for (int i = 1; i < pscnt; i++) { fd = shm_open_large(i, SHM_LARGEPAGE_ALLOC_DEFAULT, ps[i]); @@ -1909,7 +1897,7 @@ ATF_TC_BODY(largepage_reopen, tc) size_t ps[MAXPAGESIZES]; int fd, psind; - (void)pagesizes(ps); + (void)pagesizes(ps, true); psind = 1; gen_test_path(); From nobody Mon Apr 13 14:43:22 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 4fvVX04SPqz6ZGlf for ; Mon, 13 Apr 2026 14:43:28 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVWz6qC7z3vRb for ; Mon, 13 Apr 2026 14:43:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091408; 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=qgiiCu2OB33N+EM8WGbNlQzs+IS0feBNuj+XdzaSKbg=; b=mzQFLK0yT02uDy/mLBt7sRHL/y1w+N3S53bd3Zac9nc12zju0xjWLqwlFWFCBnLJ/HpmUU b919ojsUbogUJ4AlbthJXg7fqNF6St1vfzt2RXQ4WjtIdLydQOxEYMqYxtbKCwt7uBC5x0 kZ48bwGaiW8UDO4h5yVNvkqcK7g0AFxpild566ezxVSFpUcAGoN9q/t5RAwLpGiZHo4IT8 ZsRyYnCRMQ9AXkQcjxzVkgzcH97uaG2v1hC1VjrKlbLuSAcfqQYsPOe6IjwDLRv+VxUbyL Arq1GN5t1NzjZEldxZLIO1kynS01vRsNJr4YV3mWpvzuBxHje7mp7v89Ut3PNg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091408; a=rsa-sha256; cv=none; b=Jdwv98GJvRky2Cj4CoLOxQgGEliKpxhfaLIEdBzyN/8cCmsM1Bi66aamLSSA5FyDszWmZD 5tGuvVuVxhOjFyhn7+G2cTv++cb7Y9Jq+PqiAry0i27KgV4sVzY6b6jCp+kejMiW6CemJy JgfqNfQxhAYAlXe7jfrW1cQ/G3Zkf8kS84KvJo86XSKlpxTyLEWsb7WTSZrgNTpO0PLeEA gP9HIJqxTTGEzb+pWjnFzRL8w4z/5DxJ58r3OKalyUombeJlJlH4gdU6300gEL75FJ3vJw S8Gg92svDCIiXqLbJ7fH1K3pBX1zZdQEBr1oTFeuhhZkq2VSdsEHisPEIapCpw== 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=1776091408; 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=qgiiCu2OB33N+EM8WGbNlQzs+IS0feBNuj+XdzaSKbg=; b=aav3RFieUJcsoya/0VejQtSV3FOKMgKQmADhjd9xL3XgiRayv4AsVUYumSbMRyz8U2UaQV 0QA6LMAscx0UlbYtJLX7GDnHQCc/GBQsDn+QbUQyHNNTzKOIgCmjRSgovOnpl/gloHLY73 US3zl8OcXk+MFUrtdjGnfEz/H3pdg8Y7DkIxcxfs2tayS73Srm4z6EeId/XPbxMofDJXES ZW/H52NtCOH+qcLSePtTwTf7CewiXm2NzYeN182o8ejZmLPKY2jqJX5w3JuKsAwLR6AriK abzGY/pfHVjt5giNuM1G0eNLDYTw5LWO2cLK5yTRW21rfnjYDtmDZlpwz7Otww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVWz6Bd2z16lN for ; Mon, 13 Apr 2026 14:43:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1a104 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: cdd2a1d19ad3 - stable/14 - kqueue: add some kn_knlist assertions around knlist_(add|remove) 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cdd2a1d19ad3e9c62a12b78512522ca972bbd0e2 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:22 +0000 Message-Id: <69dd010a.1a104.13be1720@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=cdd2a1d19ad3e9c62a12b78512522ca972bbd0e2 commit cdd2a1d19ad3e9c62a12b78512522ca972bbd0e2 Author: Kyle Evans AuthorDate: 2026-04-01 22:30:48 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:15 +0000 kqueue: add some kn_knlist assertions around knlist_(add|remove) We currently assert that kn_status is accurate, but there's more room for error. Neither of these are very likely, but currently we'd blow up in SLIST*() macros instead of providing more obvious diagnostics. It's perhaps only worth testing these because knlist_remove() requires getting logic across both f_attach() and f_detach() correct. Reviewed by: kib, markj (cherry picked from commit 306c9049c642da6a59a5dc088589605a9aa38b87) --- sys/kern/kern_event.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index df509e7a8492..4e7ad058e144 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2461,6 +2461,8 @@ knlist_add(struct knlist *knl, struct knote *kn, int islocked) KASSERT(kn_in_flux(kn), ("knote %p not in flux", kn)); KASSERT((kn->kn_status & KN_DETACHED) != 0, ("knote %p was not detached", kn)); + KASSERT(kn->kn_knlist == NULL, + ("knote %p was already on knlist %p", kn, kn->kn_knlist)); if (!islocked) knl->kl_lock(knl->kl_lockarg); SLIST_INSERT_HEAD(&knl->kl_list, kn, kn_selnext); @@ -2483,6 +2485,8 @@ knlist_remove_kq(struct knlist *knl, struct knote *kn, int knlislocked, KASSERT(kqislocked || kn_in_flux(kn), ("knote %p not in flux", kn)); KASSERT((kn->kn_status & KN_DETACHED) == 0, ("knote %p was already detached", kn)); + KASSERT(kn->kn_knlist == knl, + ("knote %p was not on knlist %p", kn, knl)); if (!knlislocked) knl->kl_lock(knl->kl_lockarg); SLIST_REMOVE(&knl->kl_list, kn, knote, kn_selnext); From nobody Mon Apr 13 14:43:29 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 4fvVX208FRz6ZGf0 for ; Mon, 13 Apr 2026 14:43:30 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVX13JL9z3vLy for ; Mon, 13 Apr 2026 14:43:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091409; 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=kcBffETgdqHbZ5ZFBjpf2j/P+OS+Ub1pSPgnvW+gSI4=; b=VCnhcbQwTMC9yQYBQ0eAbPd2lxmkkeStQcZJbaGwshghUNtyDF3kVBegIA0KnM+H1AZ172 4IYOX5+5akRpvkUXomOghwBXP6jBMfRnbE9523IOu9oWJqo8gYrZStFotwBPvlfEwj/T3s 112BH4q4kd92klDn/kXDymQb0wOPlurBStQgJ2EpUAqN8fE6XMMEUIr19GWxTjTs1CWglF joRU/a6Bourle1Mwv43Qd6gU/yDGpXbZs9Y5IzroCzwh1MTc4tg1b9rSGSdYsPqFbKjckq mjLNI7vtxqynRw4hwQW1hzwOsaUJeEiQPAyIsGMjq0lwjNFjjJvm/8xwAI9tlw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091409; a=rsa-sha256; cv=none; b=iTsK2BAHfE8iTm1uX0F8lN0M5FLDecVo/yyamtLAIqvdQMxWzK9p3StYnNGM8iLciEwNSz VAtwkUOuNq6hCUI+41ttTo9rKG6966H082bDyt/vmPPyypRLIhb99pZOz1xW6p9lRv4/HA uqq4ZhzOOJ4l3qS0lWWR4WAZeBHeo5eWzggeMjcKkeF/gjaxt1BLqInBMFJhq7AMv5rXNw GtGMjGz0quLW4YO75BYjrLes8TV0+Xd7/cDG5Y+qyJe87qs5xK71qWTWUC5ifNB3tAuW4p CPM70TxWiJ91KM1IjBZMJfgMBfahbMlp5AsvZj+6LrVU8LTF5zLaeMXleKc8Fg== 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=1776091409; 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=kcBffETgdqHbZ5ZFBjpf2j/P+OS+Ub1pSPgnvW+gSI4=; b=T3kA1zMGuzuglLA2BbMQXD+6DmBY8JHVNHe9XTWz1jyeQnSgJUdGU0WX4/ZnFSaxKUaNzg uuAdBroD4xVxq1wR+Wlv9qeplpZ1roAuTM+gzCBZiuTTuAQ7T+nkmSnRZ84cBEvxhCqydr lXJosKUYvxvJQxCarFs7URsS+18eMKP0v4KfpqCA4N4aFV/DBrzP5iWkjWPPvuKhumRnjc xJ8qkfXoe6ewqn4PTOBzwo6L8kqfmuSc1tuLs2OhQm8Q3juxsCBFbzhkceOlbIxOe/Wafe HUlO9P3bMzCMfnMUWTwKFDiKDGNM0C+Mj7rRP2q2IuEVX/4XdnMebEBXhcHUeA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVX12Mxtz175B for ; Mon, 13 Apr 2026 14:43:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 182e8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: efab056932ed - stable/14 - kqueue: slightly clarify the flow in knlist_cleardel() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: efab056932ede3f1e14cfcc800f5c421f2d78b95 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:29 +0000 Message-Id: <69dd0111.182e8.6111503a@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=efab056932ede3f1e14cfcc800f5c421f2d78b95 commit efab056932ede3f1e14cfcc800f5c421f2d78b95 Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:17 +0000 kqueue: slightly clarify the flow in knlist_cleardel() This is purely a cosmetic change to make it a little easier on the eyes, rather than jumping back to the else branch up top. Re-flow it to use another loop on the outside and just inline the re-lock before we repeat after awaking from fluxwait. The !killkn path should maybe issue a wakeup if there's a thread in KQ_SLEEP so that userland can observe the EOF, but this isn't a practical problem today: pretty much every case of knlist_clear is tied to a file descriptor and called in the close(2) path. As a consequence, potentially affected knotes are almost always destroyed before we even get to knlist_clear(). Reviewed by: kib, markj (cherry picked from commit c6dd40f2d35d596ca60a5d87616c3e4a0fd4f676) --- sys/kern/kern_event.c | 50 +++++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index e10e57cdceb8..7c31a2f551ab 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -2634,31 +2634,39 @@ knlist_cleardel(struct knlist *knl, struct thread *td, int islocked, int killkn) KNL_ASSERT_LOCKED(knl); else { KNL_ASSERT_UNLOCKED(knl); -again: /* need to reacquire lock since we have dropped it */ knl->kl_lock(knl->kl_lockarg); } - SLIST_FOREACH_SAFE(kn, &knl->kl_list, kn_selnext, kn2) { - kq = kn->kn_kq; - KQ_LOCK(kq); - if (kn_in_flux(kn)) { - KQ_UNLOCK(kq); - continue; - } - knlist_remove_kq(knl, kn, 1, 1); - if (killkn) { - kn_enter_flux(kn); - KQ_UNLOCK(kq); - knote_drop_detached(kn, td); - } else { - /* Make sure cleared knotes disappear soon */ - kn->kn_flags |= EV_EOF | EV_ONESHOT; - KQ_UNLOCK(kq); + for (;;) { + /* + * Each pass removes as many knotes as we can before dropping + * into FLUXWAIT. Active knotes are simply detached and either + * freed or converted to one-shot, as the attached subject is + * essentially disappearing. + */ + SLIST_FOREACH_SAFE(kn, &knl->kl_list, kn_selnext, kn2) { + kq = kn->kn_kq; + KQ_LOCK(kq); + if (kn_in_flux(kn)) { + KQ_UNLOCK(kq); + continue; + } + knlist_remove_kq(knl, kn, 1, 1); + if (killkn) { + kn_enter_flux(kn); + KQ_UNLOCK(kq); + knote_drop_detached(kn, td); + } else { + /* Make sure cleared knotes disappear soon */ + kn->kn_flags |= EV_EOF | EV_ONESHOT; + KQ_UNLOCK(kq); + } + kq = NULL; } - kq = NULL; - } - if (!SLIST_EMPTY(&knl->kl_list)) { + if (SLIST_EMPTY(&knl->kl_list)) + break; + /* there are still in flux knotes remaining */ kn = SLIST_FIRST(&knl->kl_list); kq = kn->kn_kq; @@ -2668,7 +2676,7 @@ again: /* need to reacquire lock since we have dropped it */ kq->kq_state |= KQ_FLUXWAIT; msleep(kq, &kq->kq_lock, PSOCK | PDROP, "kqkclr", 0); kq = NULL; - goto again; + knl->kl_lock(knl->kl_lockarg); } if (islocked) From nobody Mon Apr 13 14:43:28 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 4fvVX13D9xz6ZGL9 for ; Mon, 13 Apr 2026 14:43:29 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvVX02DvLz3vRg for ; Mon, 13 Apr 2026 14:43:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776091408; 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=LQq/KmRfGrmBj01ik4M7XoSJ0/lq64RYK2Th2Z96p28=; b=YZR8+qN1O6ISq+f8wS2ugJqfuuQveOYHQrBJ9akZ43ygg/zujtCFfYBG7DLAU7xzjft7pg ZE+Y69HBPTgxNAHA25RVBiQco4FFN8QM4CNecpZZseLxKGCYlHpgK8ydTFA7WFtrAKZAtJ QylkQXAgwXPq1WVTWvPMf+zx9GpoA9KxgJAg+ZaZobjPrdJ96RbQc4hLCIpRf8lLN+qzqn XLRCGrqbyzsfNq6qGgmLv719xZeSINf+PlvO9CcjWUssHf3soCSZE7Jg2EYSQZFrl4Pl/t seJ2z5PmBWTXWBkAYx+G4LbVih8IUMzHcRNT1miMgs2uj1zqwQf8iuOvo71Lxw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776091408; a=rsa-sha256; cv=none; b=H1g8RER6/ZaZnuSnVPEEHq+YcTNHnpjx9x0mi0YzVAH9bC11kq+Wq0J/VaUcVTlUibhA4O NLXWdG/9YIDdyyCjIFNXtkfU23mKUfMJW23pipX/SCX2TdAYVu95Tzmzpwif3slnYsQYjU 6O5NSiWrQoVEdGMF79w3XOY9HkUoP/diP16C9MatmNFc0E7G7D9ICycTU8qFMl0kAWe9sC QXNhy2CE60ixoMOtFip9UAxxLULr1K5LoC0Ktb3zIVik1RJ/MZzgkyXKyhbMU8Ix8v6SjX M5EWNA6BvzC+xQTjl/c5hXk2u2N1GntKYKXjWO1TDgHGKrijyiwKQk83pP16Rw== 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=1776091408; 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=LQq/KmRfGrmBj01ik4M7XoSJ0/lq64RYK2Th2Z96p28=; b=q4Xli2J7B/Ff0AncDxRIF2ncE0yIbz9T+cVQ6XDB2JR542ZEibi3PA59zzP8QB5D9+G+R+ OQ+dGgaie6r55Utxpl8grcNTXjdtVDpTzynohCDgTX8eg3EfIdHEoKWmT2LXVFOTCspxMH g6vNre9O9B8nUx42FTmvsaCdAp3At74vxmoppbDyeEQRFpoaN1WH2d7kP/Ciki4LQNWZBd yLbV8srH/PgGTr/9L77SZR2CURCYGg1NfcghzqNYPo8duyCkUsKfEzYJ0j5Ke2jXr263J5 k9Ha5g7QEX4Fz9dXjjKGne/9L8fAsXJ2Gv/uog/fWmgHI4e7ncTiterYK3Sq3A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvVX01YSfz1759 for ; Mon, 13 Apr 2026 14:43:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1a10c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 14:43:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 64c72d3020f5 - stable/14 - kqueue: don't leak file refs on failure to knote_attach() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 64c72d3020f5c0d07219745f658400ca26654d84 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 14:43:28 +0000 Message-Id: <69dd0110.1a10c.13b8c5d@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=64c72d3020f5c0d07219745f658400ca26654d84 commit 64c72d3020f5c0d07219745f658400ca26654d84 Author: Kyle Evans AuthorDate: 2026-04-09 02:37:00 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 14:43:17 +0000 kqueue: don't leak file refs on failure to knote_attach() We'll subsequently just knote_free() since the knote is barely constructed, but that bypasses any logic that might release references on owned files/fops. Defer clearing those until the knote actually owns them and update the comment to draw the line more clearly. Reviewed by: kib (cherry picked from commit 0bf4d22c37083170961c31694b90551538901a1c) --- sys/kern/kern_event.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 3df1ed5565d2..e10e57cdceb8 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -1669,12 +1669,6 @@ findkn: kn->kn_fp = fp; kn->kn_kq = kq; kn->kn_fop = fops; - /* - * apply reference counts to knote structure, and - * do not release it at the end of this routine. - */ - fops = NULL; - fp = NULL; kn->kn_sfflags = kev->fflags; kn->kn_sdata = kev->data; @@ -1695,6 +1689,16 @@ findkn: goto done; } + /* + * We transfer ownership of fops/fp to the knote + * structure and avoid releasing them at the end of + * this routine, now that all of the remaining exit + * paths will knote_drop() to release the reference + * counts we held on them above. + */ + fops = NULL; + fp = NULL; + if ((error = kn->kn_fop->f_attach(kn)) != 0) { knote_drop_detached(kn, td); goto done; From nobody Mon Apr 13 15:35:24 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 4fvWh15D0tz6ZKl2 for ; Mon, 13 Apr 2026 15:35:29 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvWh14Qzlz44Cs for ; Mon, 13 Apr 2026 15:35:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776094529; 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=xik8ziejetb8kCa/wI0PgL6G3Hra9sk4y+ohTtpWUq8=; b=dMzsfJL3B0qqtcegALGDHLIURyQiLlfJ1R+4gTNPH1QBmXysb6+lVCgU3TDdGVSrsSgfpG 6FijxA1vOUSJ6a13xIB4gUtVE9n6eiBRRJIko2D6IqaSWQw9qyBJnedmPC6dtGmTWE0vXb dLEHdTcxfA5yG80os6pjPTnX4uaRW/fcHrcHCU2eKwlYHdb21lwgNnOTJNqFLAT6q0xh78 dvi4A2MD8Gh2pwT1EtOhI/e9/3dgtnKrbja8HLpZTX3oijpFI1t+RrBqPoVj3YObZ6+aXe FnsGuUx3gcDS2vmFuXVYgriws/hcMN9kd14hkVX2Q7FcZY3dj4OKYCsO6OCQAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776094529; a=rsa-sha256; cv=none; b=mMEZkXORhLafLy4GCWDtFhJqjjY54629B0+nDDvsQWyl9fYQ0d9enfD+EDR89mqiw7l6TC qe41iBlWztNroGR7Tn1PoFcMX90xLZaelPxu41MXa7pCTPx1pSzMSrnReSqNhvb+X0n+Ok WFef1cCJYzsrJop9CIc+NKsjwq5+YiS2iT/mvbs29yLFiZWWlJnU4gRcownc8q35Fmdw1t duT5Lm8hW47Df+Gzspc3ch2Iu0WX+omCnWkJZ772M8vhfpg6iPJnbgZu4oEgbJ1PqTqZ4J 4n54VuIy1jp2NSwYplYjS/aN7RxzIDhipDJ8Ql03g8WfXfQfptO8Fwp0OQ6G9A== 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=1776094529; 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=xik8ziejetb8kCa/wI0PgL6G3Hra9sk4y+ohTtpWUq8=; b=ejyB8Pn+G5gqQwzfi1Kjop4opfKMlkxyevnOTelCjK0nIygwqm9L/PFXHMCDphjyhLQlzm zmuuz48iYTzl+zpFNH3gw6GlESdk8B9YSOWCBHlAyHNfRQLbnGiSmbeLOO/75ux6ZrhB5F o4ef65RIkHcqSM122KchWoGhecW/a3VEFiR0kpbBICCLD5U0e+WZq4CWgpzqBFb52/9Gmw YbjIvVGYFxQS1zMzDwPZRaKBJCZh65clMk8Vpt6fcW1HnOsyLmkl3/HvWRl5P/l+jyo84t 63enkD/vd/jN6zRduIi+KWbHfg7R/B4DFxQph+Fm/JBAv929eJutwQ6sknrFjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvWh13RYDz18Lv for ; Mon, 13 Apr 2026 15:35:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e635 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 15:35:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dave Cottlehuber Subject: git: 3b108068121b - main - release: remove Oracle Cloud Infrastructure build targets 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: dch X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3b108068121ba30fb3dbed569d6757da2ab529a4 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 15:35:24 +0000 Message-Id: <69dd0d3c.1e635.3bcc33a1@gitrepo.freebsd.org> The branch main has been updated by dch: URL: https://cgit.FreeBSD.org/src/commit/?id=3b108068121ba30fb3dbed569d6757da2ab529a4 commit 3b108068121ba30fb3dbed569d6757da2ab529a4 Author: Dave Cottlehuber AuthorDate: 2026-04-12 22:29:44 +0000 Commit: Dave Cottlehuber CommitDate: 2026-04-13 15:34:17 +0000 release: remove Oracle Cloud Infrastructure build targets Oracle's previous support is no longer available to the project. Repeated attempts to find a sponsor within Oracle's cloud business have not been successful. The last published official images are from 15.0-RELEASE. https://marketplace.oracle.com/app/freebsd-release Relnotes: yes Sponsored by: SkunkWerks, GmbH Differential Revision: https://reviews.freebsd.org/D56360 MFC after: 3 days --- release/Makefile.oracle | 108 --------------------- release/Makefile.vm | 5 - release/release.conf.sample | 2 +- .../oracle/arm64_shape_compatibilities.json | 24 ----- .../oracle/default_shape_compatibilities.json | 1 - release/scripts/oracle/generate_metadata.lua | 74 -------------- release/scripts/oracle/image_capability_data.json | 96 ------------------ release/scripts/oracle/image_metadata.json | 21 ---- release/tools/oracle.conf | 105 -------------------- 9 files changed, 1 insertion(+), 435 deletions(-) diff --git a/release/Makefile.oracle b/release/Makefile.oracle deleted file mode 100644 index 6d792cc9fd30..000000000000 --- a/release/Makefile.oracle +++ /dev/null @@ -1,108 +0,0 @@ -# -# Makefile for preparing & uploading Oracle Cloud images from existing -# .raw files created by cloudware-release. -# -# Overview: -# -# The base image is already created by cloudware-release. -# -# Construct the custom OCI metadata, derived from exported official OCI images. -# It is architecture-specific but appears mostly stable over time. -# Compress the raw image and place it in the same directory as the metadata. -# Make a GNU format tarball of these files. -# Upload the tarball to Oracle Cloud via a pre-approved curl URI, into -# the FreeBSD Foundation's Oracle Cloud account. -# -# These images go into the "re" bucket in us-ashburn-1 region, which -# is mounted into the FreeBSD Foundation Oracle Marketplace account. -# Once uploaded, a manual step is needed to import the images as local -# custom images. These can then be tested within the us-ashburn-1 region. -# Once tested, follow the manual Oracle Marketplace import process to -# create a new FreeBSD version, attach the images, and initiate validation -# by Oracle. This can take up to 5 working days. Once complete, a final -# manual step is needed to mark the currently private images, public. -# Syncing to all sites should take 2-3 hours after this final step. - -ORACLE_BASENAME= ${OSRELEASE}-${BUILDDATE}${GITREV:C/^(.+)/-\1/} -CLEANFILES+= cw-oracle-portinstall - -cw-oracle-portinstall: .PHONY -.if (!exists(/usr/local/bin/curl) || !exists(/usr/local/bin/qemu-img)) && !exists(${PORTSDIR}/Makefile) -. if !exists(/usr/local/sbin/pkg-static) - env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf -. endif -.endif -.if !exists(/usr/local/bin/curl) -. if !exists(${PORTSDIR}/Makefile) - env ASSUME_ALWAYS_YES=yes pkg install -y ftp/curl -. else - env UNAME_r=${UNAME_r} make -C \ - ${PORTSDIR}/ftp/curl \ - BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \ - all install clean -. endif -.endif -.if !exists(/usr/local/bin/qemu-img) -. if !exists(${PORTSDIR}/Makefile) - env ASSUME_ALWAYS_YES=yes pkg install -y emulators/qemu@tools -. else - env UNAME_r=${UNAME_r} FLAVOR=tools make -C \ - ${PORTSDIR}/emulators/qemu \ - BATCH=1 WRKDIRPREFIX=/tmp/ports DISTDIR=/tmp/distfiles \ - all install clean -. endif -.endif - -.for _FS in ${ORACLE_FSLIST} -ORACLE_OCI_LIST+= cw-oracle-${_FS}.oci -ORACLE_UPLOAD_LIST+= cw-oracle-upload-${_FS} -CLEANFILES+= cw-oracle-${_FS}.oci -ORACLE_TMP_${_FS}= cw-oracle-${_FS}.oci.tmpdir -CLEANDIRS+= ${ORACLE_TMP_${_FS}} -ORACLE_METADATA= ${.CURDIR}/scripts/oracle -ORACLE_CAPABILITY= ${.CURDIR}/scripts/oracle/image_capability_data.json -ORACLE_TEMPLATE= ${.CURDIR}/scripts/oracle/image_metadata.json -ORACLE_OUTPUT_${_FS}= ${ORACLE_TMP_${_FS}}/image_metadata.json -.if ${TARGET} == "arm64" -ORACLE_SHAPES= ${ORACLE_METADATA}/arm64_shape_compatibilities.json -.else -ORACLE_SHAPES= ${ORACLE_METADATA}/default_shape_compatibilities.json -.endif - -cw-oracle-${_FS}.oci: cw-oracle-portinstall cw-oracle-${_FS}-raw - mkdir -p ${ORACLE_TMP_${_FS}} - # create architecture-specific JSON metadata - env TYPE="${TYPE}" \ - OSRELEASE="${OSRELEASE}" \ - ORACLE_CAPABILITY="${ORACLE_CAPABILITY}" \ - ORACLE_SHAPES="${ORACLE_SHAPES}" \ - ORACLE_TEMPLATE="${ORACLE_TEMPLATE}" \ - ORACLE_OUTPUT="${ORACLE_OUTPUT_${_FS}}" \ - ${ORACLE_METADATA}/generate_metadata.lua - - # convert raw to native qcow2 for zstd compression, saves ~ 8GiB - qemu-img convert -S 512b -p -O qcow2 -c -o compression_type=zstd \ - ${.OBJDIR}/${ORACLE${_FS:tu}RAWIMAGE} \ - ${ORACLE_TMP_${_FS}}/output.QCOW2 - - # Create GNU-compatible tarball using BSD tar - tar --format=gnutar -cf ${.TARGET} -C ${ORACLE_TMP_${_FS}} \ - image_metadata.json output.QCOW2 - - echo "Oracle image ${.TARGET} is ready for upload." - -cw-oracle-upload-${_FS}: cw-oracle-${_FS}.oci -.if !defined(ORACLE_PAR_URL) || empty(ORACLE_PAR_URL) - @echo "--------------------------------------------------------------" - @echo ">>> ORACLE_PAR_URL must be set for Oracle image upload" - @echo ">>> for testing, use a file:/// URL to a local directory" - @echo "--------------------------------------------------------------" - @false -.endif - echo "Please wait ... uploading cw-oracle-${_FS}.oci to ${ORACLE_BASENAME}-${_FS}.oci" - curl -s ${ORACLE_PAR_URL}/${ORACLE_BASENAME}-${_FS}.oci --upload-file cw-oracle-${_FS}.oci - echo "Uploaded cw-oracle-${_FS}.oci as ${ORACLE_BASENAME}-${_FS}.oci" - touch ${.TARGET} -.endfor - -cw-oracle-upload: cw-oracle-portinstall ${ORACLE_UPLOAD_LIST} diff --git a/release/Makefile.vm b/release/Makefile.vm index abbfcb341afc..d937783f02fe 100644 --- a/release/Makefile.vm +++ b/release/Makefile.vm @@ -24,7 +24,6 @@ CLOUDWARE_TYPES?= AZURE \ BASIC-CLOUDINIT \ EC2 \ GCE \ - ORACLE \ VAGRANT AZURE_FORMAT= vhdf AZURE_FSLIST?= ufs zfs @@ -45,9 +44,6 @@ EC2-SMALL_DESC= Amazon EC2 small image GCE_FORMAT= raw GCE_FSLIST?= ufs zfs GCE_DESC= Google Compute Engine image -ORACLE_FORMAT= raw -ORACLE_FSLIST?= ufs zfs -ORACLE_DESC= Oracle Cloud Infrastructure image OPENSTACK_FORMAT=qcow2 OPENSTACK_FSLIST?= ufs OPENSTACK_DESC= OpenStack platform image @@ -315,6 +311,5 @@ cloudware-release: .include "${.CURDIR}/Makefile.ec2" .include "${.CURDIR}/Makefile.firecracker" .include "${.CURDIR}/Makefile.gce" -.include "${.CURDIR}/Makefile.oracle" .include "${.CURDIR}/Makefile.vagrant" .include "${.CURDIR}/Makefile.inc1" diff --git a/release/release.conf.sample b/release/release.conf.sample index e583e49828d4..72faef150f88 100644 --- a/release/release.conf.sample +++ b/release/release.conf.sample @@ -113,7 +113,7 @@ PORTBRANCH="main" ## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers ## to create disk images. -#CLOUDWARE="EC2 GCE ORACLE VAGRANT-VIRTUALBOX VAGRANT-VMWARE" +#CLOUDWARE="EC2 GCE VAGRANT-VIRTUALBOX VAGRANT-VMWARE" ## If WITH_OCIIMAGES is set to a non-empty value, build Open Container ## Initiative (OCI) base images as part of the release. diff --git a/release/scripts/oracle/arm64_shape_compatibilities.json b/release/scripts/oracle/arm64_shape_compatibilities.json deleted file mode 100644 index dfd066b5474f..000000000000 --- a/release/scripts/oracle/arm64_shape_compatibilities.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - { - "internalShapeName": "VM.Standard.A1.Flex", - "ocpuConstraints": { - "min": 1, - "max": 80 - }, - "memoryConstraints": { - "minInGBs": 1, - "maxInGBs": 512 - } - }, - { - "internalShapeName": "VM.Standard.A2.Flex", - "ocpuConstraints": { - "min": 1, - "max": 78 - }, - "memoryConstraints": { - "minInGBs": 1, - "maxInGBs": 946 - } - } -] diff --git a/release/scripts/oracle/default_shape_compatibilities.json b/release/scripts/oracle/default_shape_compatibilities.json deleted file mode 100644 index fe51488c7066..000000000000 --- a/release/scripts/oracle/default_shape_compatibilities.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/release/scripts/oracle/generate_metadata.lua b/release/scripts/oracle/generate_metadata.lua deleted file mode 100755 index 751b9680cc29..000000000000 --- a/release/scripts/oracle/generate_metadata.lua +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/libexec/flua - -local ucl = require("ucl") - --- read from environment variables -local os_type = os.getenv("TYPE") -local os_version = os.getenv("OSRELEASE") --- the raw file -local capability_file = os.getenv("ORACLE_CAPABILITY") --- the platform-specific file -local shapes_file = os.getenv("ORACLE_SHAPES") --- base template -local template_file = os.getenv("ORACLE_TEMPLATE") -local output_file = os.getenv("ORACLE_OUTPUT") - -if not os_type or not os_version or not capability_file or - not shapes_file or not template_file or not output_file then - io.stderr:write("Error: Oracle metadata script is missing required environment variables:\n") - io.stderr:write("TYPE, OSRELEASE, ORACLE_CAPABILITY, ORACLE_SHAPES, ORACLE_TEMPLATE, ORACLE_OUTPUT\n") - os.exit(1) -end - --- read files -local function read_file(path) - local f = io.open(path, "r") - if not f then - io.stderr:write("Error: Oracle metadata script cannot open file: " .. path .. "\n") - os.exit(1) - end - local content = f:read("*a") - f:close() - return content -end - --- parse the template -local template = read_file(template_file) -local metadata = ucl.parser() -metadata:parse_string(template) -local data = metadata:get_object() - --- update the simple fields -data.operatingSystem = os_type -data.operatingSystemVersion = os_version - --- capability data is actually JSON, but needs to be inserted as a raw blob -local caps = read_file(capability_file) --- remove all newlines and preceding spaces to match Oracle's format -caps = caps:gsub("\n", "") -caps = caps:gsub("%s+", "") --- is it still valid JSON? -local caps_parser = ucl.parser() -if not caps_parser:parse_string(caps) then - io.stderr:write("Error: Oracle metadata script found invalid JSON in capability file\n") - os.exit(1) -end --- insert as a raw blob -data.imageCapabilityData = caps - --- parse and insert architecture-dependent shape compatibilities data -local shapes_data = read_file(shapes_file) -local shapes = ucl.parser() -shapes:parse_string(shapes_data) -data.additionalMetadata.shapeCompatibilities = shapes:get_object() - --- save the metadata file -local dir = os.getenv("PWD") -local out = io.open(output_file, "w") -if not out then - io.stderr:write("Error: Oracle metadata script cannot create output file: " - .. dir .. "/" .. output_file .. "\n") - os.exit(1) -end -out:write(ucl.to_format(data, "json", {pretty = true})) -out:close() diff --git a/release/scripts/oracle/image_capability_data.json b/release/scripts/oracle/image_capability_data.json deleted file mode 100644 index 01af71f73031..000000000000 --- a/release/scripts/oracle/image_capability_data.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "capabilities": { - "Compute.AMD_SecureEncryptedVirtualization": { - "descriptorType": "boolean", - "defaultValue": false - }, - "Storage.BootVolumeType": { - "descriptorType": "enumstring", - "values": [ - "ISCSI", - "PARAVIRTUALIZED", - "SCSI", - "IDE", - "NVME" - ], - "defaultValue": "PARAVIRTUALIZED" - }, - "Storage.Iscsi.MultipathDeviceSupported": { - "descriptorType": "boolean", - "defaultValue": false - }, - "Storage.ParaVirtualization.EncryptionInTransit": { - "descriptorType": "boolean", - "defaultValue": true - }, - "Storage.ConsistentVolumeNaming": { - "descriptorType": "boolean", - "defaultValue": true - }, - "Compute.SecureBoot": { - "descriptorType": "boolean", - "defaultValue": false - }, - "Storage.ParaVirtualization.AttachmentVersion": { - "descriptorType": "enuminteger", - "values": [ - 1, - 2 - ], - "defaultValue": 2 - }, - "Storage.LocalDataVolumeType": { - "descriptorType": "enumstring", - "values": [ - "ISCSI", - "PARAVIRTUALIZED", - "SCSI", - "IDE", - "NVME" - ], - "defaultValue": "PARAVIRTUALIZED" - }, - "Network.AttachmentType": { - "descriptorType": "enumstring", - "values": [ - "PARAVIRTUALIZED", - "VDPA" - ], - "defaultValue": "PARAVIRTUALIZED" - }, - "Storage.RemoteDataVolumeType": { - "descriptorType": "enumstring", - "values": [ - "ISCSI", - "PARAVIRTUALIZED", - "SCSI", - "IDE", - "NVME" - ], - "defaultValue": "PARAVIRTUALIZED" - }, - "Compute.LaunchMode": { - "descriptorType": "enumstring", - "values": [ - "NATIVE", - "EMULATED", - "VDPA", - "PARAVIRTUALIZED", - "CUSTOM" - ], - "defaultValue": "PARAVIRTUALIZED" - }, - "Network.IPv6Only": { - "descriptorType": "boolean", - "defaultValue": false - }, - "Compute.Firmware": { - "descriptorType": "enumstring", - "values": [ - "BIOS", - "UEFI_64" - ], - "defaultValue": "UEFI_64" - } - } -} diff --git a/release/scripts/oracle/image_metadata.json b/release/scripts/oracle/image_metadata.json deleted file mode 100644 index eaea3dd1cad2..000000000000 --- a/release/scripts/oracle/image_metadata.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "version": 2, - "externalLaunchOptions": { - "firmware": "UEFI_64", - "networkType": "PARAVIRTUALIZED", - "bootVolumeType": "PARAVIRTUALIZED", - "remoteDataVolumeType": "PARAVIRTUALIZED", - "localDataVolumeType": "PARAVIRTUALIZED", - "launchOptionsSource": "PARAVIRTUALIZED", - "pvAttachmentVersion": 2, - "pvEncryptionInTransitEnabled": false, - "consistentVolumeNamingEnabled": false - }, - "imageCapabilityData": "REPLACE", - "imageCapsFormatVersion": "23cfd738-ad9c-4f56-9281-67be6c8cd14c", - "operatingSystem": "REPLACE", - "operatingSystemVersion": "REPLACE", - "additionalMetadata": { - "shapeCompatibilities": "REPLACE" - } -} diff --git a/release/tools/oracle.conf b/release/tools/oracle.conf deleted file mode 100644 index b289f4e4e7e7..000000000000 --- a/release/tools/oracle.conf +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh -# Set to a list of packages to install. -export VM_EXTRA_PACKAGES=" - comms/py-pyserial - converters/base64 - devel/oci-cli - devel/py-babel - devel/py-iso8601 - devel/py-pbr - devel/py-six - ftp/curl - lang/python - lang/python3 - net/cloud-init - net/py-eventlet - net/py-netaddr - net/py-netifaces - net/py-oauth - net/rsync - security/ca_root_nss - security/sudo@default - sysutils/firstboot-freebsd-update - sysutils/firstboot-pkgs - sysutils/panicmail - textproc/jq - " - -# Should be enough for base image, image can be resized in needed -export VMSIZE=8g - -# Set to a list of third-party software to enable in rc.conf(5). -export VM_RC_LIST=" - cloudinit - firstboot_pkgs - firstboot_freebsd_update - growfs - ntpd - ntpd_sync_on_start - sshd - zfs" - -# Hack for FreeBSD 15.0; should go away before 15.1. -MISSING_METALOGS=" -./usr/local/etc/cloud/cloud.cfg -./usr/local/etc/cloud/cloud.cfg.d/05_logging.cfg -./usr/local/etc/cloud/cloud.cfg.d/99_freebsd.cfg -./usr/local/etc/pam.d/sudo -./usr/local/etc/rsync/rsyncd.conf -./usr/local/etc/ssl/cert.pem -./usr/local/etc/sudo.conf -./usr/local/etc/sudo_logsrvd.conf -./usr/local/etc/sudoers -" - -vm_extra_pre_umount() { - cat <<-'EOF' >> ${DESTDIR}/etc/rc.conf - dumpdev=AUTO -EOF - - cat <<-'EOF' >> ${DESTDIR}/boot/loader.conf - autoboot_delay="5" - beastie_disable="YES" - boot_serial="YES" - loader_logo="none" - cryptodev_load="YES" - opensolaris_load="YES" - xz_load="YES" - zfs_load="YES" -EOF - metalog_add_data ./boot/loader.conf - - cat <<-'EOF' >> ${DESTDIR}/etc/ssh/sshd_config - # S11 Configure the SSH service to prevent password-based login - PermitRootLogin prohibit-password - PasswordAuthentication no - KbdInteractiveAuthentication no - PermitEmptyPasswords no - UseDNS no -EOF - - # S14 Root user login must be disabled on serial-over-ssh console - pw -R ${DESTDIR} usermod root -w no - # Oracle requirements override the default FreeBSD cloud-init settings - cat <<-'EOF' >> ${DESTDIR}/usr/local/etc/cloud/cloud.cfg.d/98_oracle.cfg - disable_root: true - system_info: - distro: freebsd - default_user: - name: freebsd - lock_passwd: True - gecos: "Oracle Cloud Default User" - groups: [wheel] - sudo: ["ALL=(ALL) NOPASSWD:ALL"] - shell: /bin/sh - network: - renderers: ['freebsd'] -EOF - metalog_add_data ./usr/local/etc/cloud/cloud.cfg.d/98_oracle.cfg - - # Use Oracle Cloud Infrastructure NTP server - sed -i '' -E -e 's/^pool.*iburst/server 169.254.169.254 iburst/' \ - ${DESTDIR}/etc/ntp.conf - - return 0 -} From nobody Mon Apr 13 15:51:52 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 4fvX3C4dthz6ZLjD for ; Mon, 13 Apr 2026 15:52:07 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvX3B6j3Pz45bb for ; Mon, 13 Apr 2026 15:52:06 +0000 (UTC) (envelope-from asomers@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; arc=pass ("google.com:s=arc-20240605:i=1"); dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of asomers@gmail.com designates 209.85.208.50 as permitted sender) smtp.mailfrom=asomers@gmail.com Received: by mail-ed1-f50.google.com with SMTP id 4fb4d7f45d1cf-66dd1b5bb6aso7155696a12.2 for ; Mon, 13 Apr 2026 08:52:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776095525; cv=none; d=google.com; s=arc-20240605; b=MF4rQycRIUHnTbYQrwsPIKoSJGEA1MXE2vUkAhouHa+88vOhTcASKEvnWVmM8u60co WGa+A5ZDUHeeG4phthwi5ckEIvhd0LGrqXcSexNL+ASDTVFrlc5i8o4rHIUvcmujmIeb YGltus30yUiPTrnWy5Z2XvkYy3a06AI6n7zj/mJLCLVfTtl5lVS/Sw1VrB1N/6Mlx+Oe dX1xHggeWZkFvHACgmj0Ev1hX9HFPKB1fCN0DSqdWV90i9EY5sTnPX4vCD2QN5N9dCpG ocq3goxQrCi1HxpJFRNhjxOMju3s+YDKSH4dRo8OZFdAy12qYfAy3o7NUkJjANPx0MhK IzSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=ErNbfwKLoqluoAHm778FUo4E4ob4Alf+KwSFzLCilOQ=; fh=0kTIatAvH/ElvWeAURpqx0o0scN6xDQhr2fNIX1xOU4=; b=a90sOq3f03ikPtcC0qMJ2GXwKR4y+m5EH0XDCfVOxUFzCJ0e5Eo9qb0q/WstJckwK+ AzMaONiDL8E/oVsjxB6Pm2Q9sQUwm2kZj3sIo5KMK1zYZN/VVEz4NUi48jBpGkutpGRz oSHpJOG0YwTflBGN1C4bx+KWVpvawxvEmJwyWldHc2fuSXzvAZBPJo7P1I1TxOZM0lc4 VUpJ8YlfUEaj6zUq757RjdOiixweM4ilpJ+lTkJgaRJKoGoRXuVn4IeQbLBHKr9CA0Pm q9N2H9Nusy9aaDBWs1tlumOpADoPC6hshYAfYi1F3FpDrFZQhgnwTQSGA612bD9kYhrd WPJA==; darn=freebsd.org ARC-Authentication-Results: i=1; mx.google.com; arc=none X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776095525; x=1776700325; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ErNbfwKLoqluoAHm778FUo4E4ob4Alf+KwSFzLCilOQ=; b=Vf9HSv697FEtA/jpetMwWtX2/fq4ZOWvqIWWfDRyP5AKp39rBBj7J+z4BS4qu3T1Cn mn3N4x41BvsJ/gTE+kc6K8UfNIRRQ9vRSKyGF2ApxnhmtpFHFspfLHcNT6+nSfCA8zmN UL/5uVV5eGbrXgpzV4xP1//d3z/KwQ6+8uq5bTPQaNFO7lPJfaa4MLzNLfEwVIhgjqRD HBfjFtaNOrBKBChU8ifn44+K941Ejh3OCUxpV7otcjs3hJIhV6ZmYEniCqpydpobyM26 KiMjWTD5CeqYfgqLF3CAtnGv7vwChlKTiJygyicLd8AUjxMrpdZMfSVNKh8y0HiKLqiE kSKw== X-Forwarded-Encrypted: i=1; AFNElJ+mKKPOt/nMqBIwmD9TgZDxQrccYZ/wWdh32SXaoBzMbvwY0QDkCa9oyBtsTOuWGN7eHG9zTT/6IwTf99RD08ayEhCM@freebsd.org X-Gm-Message-State: AOJu0YzmrDkm3qQ5NYtvha+RYnTP25J5ujuiiEwVSEbako2sGm2Zj/ey GtKw7ig5UIfnZPpnvhKIPZ/oudUhdcfwMYB9GtTSOs9LJBmW+aeXt3dm8SbNOvNwrKOjImbl8js PIKLZJ3VUCxqz777yKzU5Bbkc8ZhWElk= X-Gm-Gg: AeBDiesszjswD5RZcySD1phFOkJbZt/MsJfn4USbbI+XCdwfSgeU1hoUU+5UubdYOXa HhJSICQq/aDWLmwlZb8+nmv7ZKj2820ZrRz8Z+Vi3TFzgLtuN9R6EjbthdAT8uXmWLaqdceKA8+ e3By0uRfS+h7m/5Vb35YXHknzq9dBtWvfFmJRRB91hfpGUq7NrkMQh6pf/DQXfrRyperwu1CFRt CiCmEkS2DbEeC2JFf0qIB1KEVfTeH+pUCmQUiUG2YuIpvZtkcPVa9CPn1kvKB2AR4/40gY6mAht fAfRuUlOgrpL1GR2At2QsvSb6T8t8zKDBFG9LPPk6sxAqmHtrWlBTE6rPv/HYTf2czuG X-Received: by 2002:a05:6402:4558:b0:665:3d68:c46c with SMTP id 4fb4d7f45d1cf-6707a47eb05mr4755625a12.14.1776095524409; Mon, 13 Apr 2026 08:52:04 -0700 (PDT) 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 References: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> In-Reply-To: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> From: Alan Somers Date: Mon, 13 Apr 2026 09:51:52 -0600 X-Gm-Features: AQROBzBTYwyEssH9AFjFo-crl7OHcWcAV9Qsb-bBo41RodLs8M7DLXElAHVQq1E Message-ID: Subject: Re: git: 66b5296f1b29 - main - ctld: Add support for NVMe over Fabrics To: John Baldwin Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Result: default: False [-3.89 / 15.00]; ARC_ALLOW(-1.00)[google.com:s=arc-20240605:i=1]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.996]; NEURAL_HAM_LONG(-1.00)[-0.995]; FORGED_SENDER(0.30)[asomers@freebsd.org,asomers@gmail.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; FREEFALL_USER(0.00)[asomers]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; MIME_TRACE(0.00)[0:+]; TO_DN_SOME(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; FROM_HAS_DN(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[209.85.208.50:from]; FROM_NEQ_ENVFROM(0.00)[asomers@freebsd.org,asomers@gmail.com]; RCVD_TLS_LAST(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-all@freebsd.org]; RCVD_IN_DNSWL_NONE(0.00)[209.85.208.50:from]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org]; MISSING_XM_UA(0.00)[]; R_DKIM_NA(0.00)[]; RCPT_COUNT_THREE(0.00)[4] X-Rspamd-Queue-Id: 4fvX3B6j3Pz45bb X-Spamd-Bar: --- On Wed, Aug 6, 2025 at 2:10=E2=80=AFPM John Baldwin wrote= : > > The branch main has been updated by jhb: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D66b5296f1b29083634e2875ff0= 8c32e7b6b866a8 > > commit 66b5296f1b29083634e2875ff08c32e7b6b866a8 > Author: John Baldwin > AuthorDate: 2025-08-06 19:57:50 +0000 > Commit: John Baldwin > CommitDate: 2025-08-06 19:59:13 +0000 > > ctld: Add support for NVMe over Fabrics > > While the overall structure is similar for NVMeoF controllers and > iSCSI targets, there are sufficient differences that NVMe support use= s > an alternate configuration syntax. > > - In authentication groups, permitted NVMeoF hosts can be allowed by > names (NQNs) via "host-nqn" values (similar to "initiator-name" for > iSCSI). Similarly, "host-address" accepts permitted host addresses > similar to "initiator-portal" for iSCSI. > > - A new "transport-group" context enumerates transports that can be > used by a group of NVMeoF controllers similar to the "portal-group" > context for iSCSI. In this section, the "listen" keyword accepts a > transport as well as an address to permit other types of transports > besides TCP in the future. The "foreign", "offload", and "redirect= " > keywords are also not meaningful and thus not supported. > > - A new "controller" context describes an NVMeoF I/O controller > similar to the "target" context for iSCSI. One key difference here > is that "lun" objects are replaced by "namespace" objects. However= , > a "namespace" can reference a named global lun permitting LUNs to b= e > shared between iSCSI targets and NVMeoF controllers. > > NB: Authentication via CHAP is not implemented for NVMeoF. > > Reviewed by: imp > Sponsored by: Chelsio Communications > Differential Revision: https://reviews.freebsd.org/D48773 ... > +struct target * > +conf::add_controller(const char *name) > +{ > + if (!nvmf_nqn_valid_strict(name)) { > + log_warnx("controller name \"%s\" is invalid for NVMe", n= ame); > + return nullptr; > + } > + > + /* > + * Normalize the name to lowercase to match iSCSI. > + */ > + std::string t_name(name); > + for (char &c : t_name) > + c =3D tolower(c); ... This makes it impossible to define an uppercase or mixed case target name in ctld. I guess the intent was to comply with rfc3722[^1]? Even so, it's surprising, because such target names used to work. It's also inconsistent, because it's still possible to create an uppercase target name using ctladm directly, like this: ctladm port -c -d iscsi -O cfiscsi_portal_group_tag=3D257 -O cfiscsi_target=3Diqn.2018-10.myhost:TESTVOL1 Should we warn the user if they specify an uppercase target name, or even fail to create it? [^1]: https://datatracker.ietf.org/doc/html/rfc3722 From nobody Mon Apr 13 16:56:37 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 4fvYTf48G8z6ZQmQ; Mon, 13 Apr 2026 16:56:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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 "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvYTf3cQ5z3HCn; Mon, 13 Apr 2026 16:56:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776099398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cymmBp0CvKOJnVJFkTWB99sCtTICR7yh9qGoNJfCHrA=; b=ud8whnMSCquWhVH9HibzQ1kkPDPRUx3GhFVW4nKxewsYRMD3XeaQ87lgg5ME0ix9RwQy5l BXHouDgMeWsoRk5pTPqFNgiPcaJ5aLiOylpcD5tHLilW0QeDYZejy+SQ3sm/vGjrL1tjsx ewrTWxoTmiY/NUvWXyWff1XIE9760oggtZnCCy3Vgdwoh6dD5kVKaJCT2misIdeyKKt3tG 3jhV9BJljDKPJeg4mW6eYiv4dhAPygvv4FKzJ9hLRFrCvIKR5M1aufUxQMxvFJkMfgh1Sc iT9d1BNZq2NBq34+X9rH1z0a2u35GZm3h+kxyYL8Lficg37Y3kyYweP4NHz+dg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776099398; a=rsa-sha256; cv=none; b=gpJrE97tBfjxEsHVCS/2WC9QLed6pHbUfgpmUb67HngTKyRDo8cV9MH3QCa17oJ1ms2eUu CPVH7Gp9CovbxVHyg/q5JfIhMS8+w3NYdd889MVCpcYOlsP+24RWmrte6lbfNFiVWXLkKz hFllMxzyxVIoPsweD3Nx2ZlNZrMocu5E+kyGceM3j2LeSkEazO15l3n7O+AXJxdP1TaujN hyRiFzxhJsLgTyEyjIOxJVSKSQsocvnQPrOSGwlH6MAFHOvpSJBdAjaKbe3T/1nYvGBOEg 0V6riUiEOyFNk9tXh1IKK1PmCj8J3BYeMVOR2crBe3YXd1rKjPJTOAYSL0Cgxw== 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=1776099398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cymmBp0CvKOJnVJFkTWB99sCtTICR7yh9qGoNJfCHrA=; b=DcTAIdEA4ktrroww+FI5gU4PkPFqFesdrkS9MB/p+4EKV8EHCqdKcUJUYG3nC0/NznfTIZ I0WtYbfrN1kgslrMyrxpgt68jpyAu/a1FEM9uoSIAGaz0yhxcXk0GX86Y6NfvzQV44Q2ut di/hTcAAYk29gH1q+HRGb3FwCKS339fjJ34n7YeJY3RyaZmw7L7LUapGesCsG/Xr7xrfYT 95GiSxtkwCKuuTqCmS59q1aYjDoreM0zw1O1IcqMVdcO7dKU+8lEMu25sKdxC1KvKrDXyL /63iAszAtu8OJdivTKJ6BwXeIOs9vmqtaJAiJnhxGzE0rovNnr7hfEwbeMMmBA== Received: from [IPV6:2601:5c0:4202:5670:7939:bbf5:92d0:fbb9] (unknown [IPv6:2601:5c0:4202:5670:7939:bbf5:92d0:fbb9]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fvYTf1b0rzmwm; Mon, 13 Apr 2026 16:56:38 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: Date: Mon, 13 Apr 2026 12:56:37 -0400 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 User-Agent: Mozilla Thunderbird Subject: Re: git: 66b5296f1b29 - main - ctld: Add support for NVMe over Fabrics Content-Language: en-US To: Alan Somers Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org References: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> From: John Baldwin In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 4/13/26 11:51, Alan Somers wrote: > On Wed, Aug 6, 2025 at 2:10 PM John Baldwin wrote: >> >> The branch main has been updated by jhb: >> >> URL: https://cgit.FreeBSD.org/src/commit/?id=66b5296f1b29083634e2875ff08c32e7b6b866a8 >> >> commit 66b5296f1b29083634e2875ff08c32e7b6b866a8 >> Author: John Baldwin >> AuthorDate: 2025-08-06 19:57:50 +0000 >> Commit: John Baldwin >> CommitDate: 2025-08-06 19:59:13 +0000 >> >> ctld: Add support for NVMe over Fabrics >> >> While the overall structure is similar for NVMeoF controllers and >> iSCSI targets, there are sufficient differences that NVMe support uses >> an alternate configuration syntax. >> >> - In authentication groups, permitted NVMeoF hosts can be allowed by >> names (NQNs) via "host-nqn" values (similar to "initiator-name" for >> iSCSI). Similarly, "host-address" accepts permitted host addresses >> similar to "initiator-portal" for iSCSI. >> >> - A new "transport-group" context enumerates transports that can be >> used by a group of NVMeoF controllers similar to the "portal-group" >> context for iSCSI. In this section, the "listen" keyword accepts a >> transport as well as an address to permit other types of transports >> besides TCP in the future. The "foreign", "offload", and "redirect" >> keywords are also not meaningful and thus not supported. >> >> - A new "controller" context describes an NVMeoF I/O controller >> similar to the "target" context for iSCSI. One key difference here >> is that "lun" objects are replaced by "namespace" objects. However, >> a "namespace" can reference a named global lun permitting LUNs to be >> shared between iSCSI targets and NVMeoF controllers. >> >> NB: Authentication via CHAP is not implemented for NVMeoF. >> >> Reviewed by: imp >> Sponsored by: Chelsio Communications >> Differential Revision: https://reviews.freebsd.org/D48773 > ... >> +struct target * >> +conf::add_controller(const char *name) >> +{ >> + if (!nvmf_nqn_valid_strict(name)) { >> + log_warnx("controller name \"%s\" is invalid for NVMe", name); >> + return nullptr; >> + } >> + >> + /* >> + * Normalize the name to lowercase to match iSCSI. >> + */ >> + std::string t_name(name); >> + for (char &c : t_name) >> + c = tolower(c); > ... > > This makes it impossible to define an uppercase or mixed case target > name in ctld. I guess the intent was to comply with rfc3722[^1]? > Even so, it's surprising, because such target names used to work. > It's also inconsistent, because it's still possible to create an > uppercase target name using ctladm directly, like this: > > ctladm port -c -d iscsi -O cfiscsi_portal_group_tag=257 -O > cfiscsi_target=iqn.2018-10.myhost:TESTVOL1 > > Should we warn the user if they specify an uppercase target name, or > even fail to create it? > > [^1]: https://datatracker.ietf.org/doc/html/rfc3722 Note that this function is for NVMe, not iSCSI. iSCSI targets are created in conf::add_target which has similar code: struct target * conf::add_target(const char *name) { if (!valid_iscsi_name(name, log_warnx)) return (nullptr); /* * RFC 3722 requires us to normalize the name to lowercase. */ std::string t_name(name); for (char &c : t_name) c = tolower(c); Prior to the C++ commit, this change was already in place: struct target * target_new(struct conf *conf, const char *name) { struct target *targ; int i, len; targ = target_find(conf, name); if (targ != NULL) { log_warnx("duplicated target \"%s\"", name); return (NULL); } if (valid_iscsi_name(name, log_warnx) == false) { return (NULL); } targ = new target(); targ->t_name = checked_strdup(name); /* * RFC 3722 requires us to normalize the name to lowercase. */ len = strlen(name); for (i = 0; i < len; i++) targ->t_name[i] = tolower(targ->t_name[i]); targ->t_conf = conf; TAILQ_INSERT_TAIL(&conf->conf_targets, targ, t_next); return (targ); } This was present in commit 009ea47eb2d21856af4529aaaca32cd67748daea which brought in the iSCSI target, so it has always been present in ctld. Also, AFAICT, the names are still accepted, they are just normalized. I guess one difference is that before, target_new() called target_find() with the non-normalized name to check for duplicates, and now we check for duplicates after normalizing the name. I'm not sure how that worked in the past in practice as you would have had two targets with the same name (e.g. I wonder what the ctladm portlist output looked like for this case and if it would have listed two ports with the same name)? I suspect that was more by accident and probably didn't work properly in practice (e.g. the kernel handoff ioctl used the normalized name when invoking CTL_ISCSI, so connections to both "names" probably were always mapped to only one of the connections, and finding a port during login processing probably only found the first target, and only if the initiator gave the all-lowercase name). That is to say, you didn't get an error before, but it didn't work, and now it tells you that it doesn't work AFAICT. -- John Baldwin From nobody Mon Apr 13 17:01:55 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 4fvYbr4ZBpz6ZR1x for ; Mon, 13 Apr 2026 17:02: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvYbr1yjHz3JTy for ; Mon, 13 Apr 2026 17:02:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776099720; 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=0hKIMI2n5ISCJGfU02WJ2DUKa3kcWB1gXhfXAOdug1s=; b=XWKfHaxQZwvvj/VKTxydgAmTV/oI9/1i4/4W0R+NlBJb7CqzEmHixqOZTeZAl/7HD0BL6e sw9BT3h+oJJOF76x0x/j4JWYSNSDOPyr34AglYM4G9mFTHMkMZRAoAIVPDSXMsWwVuFA1W f9kOMDRxitSsY4iTVLWqRZbb33J4Zzw4XZ9aV3csXuZ5kN4u5WiVsc9wxcF5srVXMsTu2O rOBEtS4UO2regNBirIPcVBSLDb9lJnjPCqkjMETKtLyFT99wqZtJu/yiE4HLYaV9BoFyem alHjqm8wbDFszrhYFzOLQTAufN+PSfyQXO9mCh9g2exofaE9urE3xNFJlXBj6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776099720; a=rsa-sha256; cv=none; b=JlPqDa4O9DWVQ3z1bz0wGoNGbOjOchThXhsR4zm7yL+uoE9zSaW1v1yCM1TWd6fUHweveY zLckpV1ebOksqebhtCjU2TVog7iC6KczRW/XWiMyX1y95ZqkUR2aUbIGCg2eoKw27ArPpm +kWBsTHvZou6bb94XuC9NWRd5f8TPXXfP6WahxtdWu28p4UKYaurZ+KbwqxwBdHiotJuyW /7CEYQDa0kBlJdwNGZb0eyt6KIfJeevWpPyEivmaoMxCGlSJjwC7PPBOYtjFkQFl7OZcmC eKY2Gs9Y0AG4cv7Nf1JK0H0A/p0YHdW7mNChMuXSkTK75WnvkUVGDWkycHFk+w== 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=1776099720; 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=0hKIMI2n5ISCJGfU02WJ2DUKa3kcWB1gXhfXAOdug1s=; b=kLyGa3GEP6NZToPgs1g0VYHNdQRhgTL/15iD4AI41cIHD7FRi9LwT8ML2aooc81PvHhChY 3PY4olG7BedGW2RzIeJ9+Xy285489NXHTUpX1J/bxeqChK71Myu96+1jOKAhF3YuH57yMm 6dstg4PN+RowndjuXHS5CU15z59iWw7b8AN/w3yi5Hx17EusEYI7+NildXhTiGia9+Cl7c wKPznQ2CN/0i59XulTe9xZSsiralQr5cO1b0lqqzC01jNsvBpFm4f69CIWurIfjNywHDu7 UtEthPInfLgkKHnBS9BYxn+357XW1C7cA6jDC7x9F2eEx+Ez/yRXw79jAnyETg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvYbr1XzVz1CBf for ; Mon, 13 Apr 2026 17:02:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30d35 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:01:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Pouria Mousavizadeh Tehrani Subject: git: bc793ad78734 - main - ifconfig: Fix printf on geneve for 32-bit architectures 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: pouria X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: bc793ad78734acc4833f8f38bfb505e810c52963 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:01:55 +0000 Message-Id: <69dd2183.30d35.35598107@gitrepo.freebsd.org> The branch main has been updated by pouria: URL: https://cgit.FreeBSD.org/src/commit/?id=bc793ad78734acc4833f8f38bfb505e810c52963 commit bc793ad78734acc4833f8f38bfb505e810c52963 Author: Pouria Mousavizadeh Tehrani AuthorDate: 2026-04-13 16:55:26 +0000 Commit: Pouria Mousavizadeh Tehrani CommitDate: 2026-04-13 16:58:31 +0000 ifconfig: Fix printf on geneve for 32-bit architectures Replace uint64_t type with uintmax_t in printf to fix warnings on 32-bit architectures. Reported by: Jenkins Fixes: 688e289ee904 ("ifconfig: Add support for geneve") Differential Revision: https://reviews.freebsd.org/D55184 --- sbin/ifconfig/ifgeneve.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sbin/ifconfig/ifgeneve.c b/sbin/ifconfig/ifgeneve.c index aac8c81a3b10..db0e90e6f278 100644 --- a/sbin/ifconfig/ifgeneve.c +++ b/sbin/ifconfig/ifgeneve.c @@ -403,10 +403,10 @@ geneve_status_nl(if_ctx *ctx) geneve_data.ifla_ftable_nospace); } - printf("\n\t\tstats: tso %lu, txcsum %lu, rxcsum %lu", - geneve_data.ifla_stats_tso, - geneve_data.ifla_stats_txcsum, - geneve_data.ifla_stats_rxcsum); + printf("\n\t\tstats: tso %ju, txcsum %ju, rxcsum %ju", + (uintmax_t)geneve_data.ifla_stats_tso, + (uintmax_t)geneve_data.ifla_stats_txcsum, + (uintmax_t)geneve_data.ifla_stats_rxcsum); } putchar('\n'); From nobody Mon Apr 13 17:36:01 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 4fvZMB1P8Kz6ZSwk for ; Mon, 13 Apr 2026 17:36:06 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZMB0r1Zz3NhH for ; Mon, 13 Apr 2026 17:36:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776101766; 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=6Y3ikc7Wx7GJU7oI9eRfDF8OtxgiCx5FdlEyoP76ZAA=; b=i6VN92XbLc0M01jTUXeBTXCSVKsKjcHuxKzkXNpLIyyrbfkjAbAC5gW1pxEAekggGiRb8c wa3omSyVx4HHm664cYgJuSS73XyOGShtiWtOhbtODBYphaF8YAiqs6UpbbqspfEfgnMKjv 0FVopTrjZJA3z8U8MxLSsGcRwQuH+8HOjKdv/eyMwYd2CwFbgqAy6ISVLuKowmrhyxf2Z2 HAuC92+40ULOmRYwmqFEKaQd4EI05+7vrM0QMAfoD9bT0o5CUcexKjYS/UhWlRRcOJD7TN 8YaD51c5rvSyATvCsmsycpdSIk6S/iDQamb1y3vVjYGIIfKtPON0CixNyJTBmQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776101766; a=rsa-sha256; cv=none; b=FnBGU0qnI0XBErZYVLJClNHmf2mRHT6DyyfQjdWpLAVR4OdPqOZOZpw7SRQBHHtiFlcx/r nVIaN3vkLrxzfULAGMI3bbOnGp4ezl4WtvqPQo6ydRM5K6WmQpUWJ2qLStT2x3ZS9T0zfM 0aW/L7uQEHQ0KO1hhm3lVXRKULHXZYzUQa1NSxEzi/SKr+/DnnADwBloS6RvexHL/+Ivrh 25dJUQp4uotfYLSPAA2JctVVN6kggbgCbBGEjWgAi7FJN1jrWaMy5f1MEs7d3CZ3UoGyx6 qV9ju9YVRx4rTmBDQGFs3En3JC5TEUy1dqErE2KffJdZ9rBrUl5AQ5uRR5GIxg== 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=1776101766; 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=6Y3ikc7Wx7GJU7oI9eRfDF8OtxgiCx5FdlEyoP76ZAA=; b=vNpbTQlOy5kwuqiltnt66p0VcS8BvADxarul1ewxUaZxi++0JhmCAE/3qdKQ160NX9gp+r I2rtTTRSgGYQtuAHr6jdXa2CQe5ZvKFhycBwNv0nOxhbZ5JckbM8SiBRhKHU/jfjLVK6UQ qRqhOs9n4RZEb2dK5s+pSm/k3SIsuT2NUn/C6Moi30zZWVs1wF/JyQEHmjcIgNNAvNb5v/ GqTgRPNpRUCJd9CrBzcR6gKRn0sdyxfqWgvTGmi1wgYW70gQ9JYF1/BJ+TrFiYpvJsZuF0 aEGn4IIVDC4iGvDP+Hu5rvuoBLPH7+ynaEbsyUw3FK2v84Q/0tX13scxfzVI9A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZMB0R2Kz1CVh for ; Mon, 13 Apr 2026 17:36:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33c20 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:36:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 855507463e0d - stable/15 - fmax.3: Add caveat for going beyond C std requirements 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 855507463e0d3903d31aa7c084efbf4f819b5d63 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:36:01 +0000 Message-Id: <69dd2981.33c20.18a98019@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=855507463e0d3903d31aa7c084efbf4f819b5d63 commit 855507463e0d3903d31aa7c084efbf4f819b5d63 Author: Ed Maste AuthorDate: 2026-04-02 21:59:42 +0000 Commit: Ed Maste CommitDate: 2026-04-13 17:35:35 +0000 fmax.3: Add caveat for going beyond C std requirements libm's fmax and fmin family of functions treat +0.0 as greater than -0.0. This is not required by the C standard, so the user may not see this behaviour due to compiler optimization. PR: 294214 Reviewed by: fuz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56230 (cherry picked from commit 7764e9ca28a9702aed4ba7391e055ec2fcf35c41) --- lib/msun/man/fmax.3 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/msun/man/fmax.3 b/lib/msun/man/fmax.3 index 25fc9b6d518a..873a19375ce5 100644 --- a/lib/msun/man/fmax.3 +++ b/lib/msun/man/fmax.3 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd June 29, 2004 +.Dd April 6, 2026 .Dt FMAX 3 .Os .Sh NAME @@ -68,10 +68,6 @@ functions return the smaller of .Fa x and .Fa y . -They treat -.Li +0.0 -as being larger than -.Li -0.0 . If one argument is an \*(Na, then the other argument is returned. If both arguments are \*(Nas, then the result is an \*(Na. These routines do not raise any floating-point exceptions. @@ -90,6 +86,13 @@ and .Fn fminl functions conform to .St -isoC-99 . +.Sh CAVEATS +The library implementations of these functions treat +.Li +0.0 +as being larger than +.Li -0.0 . +This behavior is not specified by the C standard, is not portable, +and may not occur in light of compiler optimizations. .Sh HISTORY These routines first appeared in .Fx 5.3 . From nobody Mon Apr 13 17:36:11 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 4fvZMc2Rgzz6ZSx3 for ; Mon, 13 Apr 2026 17:36:28 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZMb3Zjyz3P5R for ; Mon, 13 Apr 2026 17:36:27 +0000 (UTC) (envelope-from asomers@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-671a901584eso1044989a12.0 for ; Mon, 13 Apr 2026 10:36:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776101786; cv=none; d=google.com; s=arc-20240605; b=URMfthGi1v3FE3cBxCz4V2Yughpl+JId2zCCL006x82eMG229zdlv2jrDoCn5VeKDO 9473E7bbrwqRBTZ6diniZuFbek4Smx7Jiba7QRquIyHpMqHxuIKyV/keIWMgi1CVZPQt AYpmSNKsvJ7XzLVl66NMB03IfxWuvIHnoj6ENa7I8c81aI5UkTZnf525qsnShvgtkLPo rFSWZpr3WpfqfZP8h7TOKNJ5BBsh+wc4SlZFpvI6TtJtdkwKE9vGKcO5TzjZwmuvnmsK T/oJMaXac3X1jvYrYMFfpHsNfQe8KMBMcRxL+Ffhg4FWU39NYMZIN6B0uXV8R6SzkCU3 qb2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=lzuWUjcyzos8Cfp8OyWG+exlnd52GeMtiOF+zOoSQ8c=; fh=DqA6bBulT5zreASlmxByvROPcMBFDXAaKRklQKKtVwI=; b=hlmr60Hoc7Av45ohZBD3pnja/QMxthkBBlWoslRg63qjkSqPWUGcJb5BOnDICyqbiB /CWHGyu9IbY+knGSjnQSnI9+FVUFI/jkJkyQfaZcnBCKb3/ZtnEYLhccPOfvZzf1udvx SXbi9JWwxS3DosgdJpDwBRPgYLYWd3ssUhcycdmBPzKh9kJWAdACRHdCfkPl49ux3/av rfZNU0P/zk4wtBwTmuoJd4Kjlt28yXTM/UpgJY+vYXkYNiBAwsmVjBBB8ojc1313LTFe yuohnrdWot1FGxjvLStg65ViHHGK8kZc2LZ4w3INwecRQFpcJBgb3oPhJ2ihijcVOmox krHw==; darn=freebsd.org ARC-Authentication-Results: i=1; mx.google.com; arc=none X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776101786; x=1776706586; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lzuWUjcyzos8Cfp8OyWG+exlnd52GeMtiOF+zOoSQ8c=; b=Jg2WUvZPl/WrlE5JFi+DBBIH7emR+S+sE0YM2N4NZYwSKiE6n7QV13quFUVviEwONB Y2g49UkvUUq6jMY6Wms4pQGyYfhKE13XNFjyp/rpPl2pnrxTthqqjWoKbG+2d6IOKjj1 elArYLTr4YD687anGQcISyMxRHwGOVFPCkGEntSsfHEEjvyhqIT1slJ3q3luFa2LZcpM jatTQch8izoKpFC9q2zAI19MD0r7H+1zhE4+pwVrGXBm6rjK0DyXYsMrlMWRIa57AFmf icUenFuRosGxF4VInGODZYviJ6z41VJJgx0LZn6xV3yj1iqaogh2hmpqNbqrf0fBoOz7 4aHA== X-Forwarded-Encrypted: i=1; AFNElJ8tlagM1IKL12XFGBZw/GJ3WdKPN/i1LD7lqaecRIrnnxiZE3AgYKjwqAz6XyDK0alvaRK72QXlyFeXYoFB+blxNVvz@freebsd.org X-Gm-Message-State: AOJu0YzgGLJ0MbkZXm+XNUUwnZqDNq194aWM0T+Uu5o6cl5IWABv5i9L rJ5vsaRIOii7fKA5zd56snLz3mpwx9twxaltP9gtDK83Yt/BB1waWQ/76oGJNSd2EYjA/zgRL9p WruezVjhFMO0tsyn4W+7wVR5hFn/w/uQ= X-Gm-Gg: AeBDiev5Ptfkfy23TTAMBkFwii1EwodmUcY6GjxT5Rv5o+fP+59vsM6IP77p2i+1E/m BPJVC+iQRRUz5Zhww/Fy7WlqJlWJYUN27Cs1/4EBgY/4i/6uznW++t7dOhKcGwu+/HJ/CPrjcMN Zc/TsnNEUb1DKoPBEZ75zsl5cgJlLrU4/7nY15HtCGICTECqqmrUPf5ocrKsIpWSgAZo8IVjlyC PQ4jLbcVM59PrZucp/howW/RiWbXEO8qpUXrcUNQX3mSZb5ZFWkwPnZnpKXhbmpJSpRlN3ANa4W 7nT0OIeJurGKp6ul3AlhMVxDqjpq+Pie6ApuAIA8WnKERtUwy0cg9cW6348eTnUuWdIS X-Received: by 2002:a05:6402:440b:b0:66e:bad4:3f52 with SMTP id 4fb4d7f45d1cf-67077641317mr7013847a12.2.1776101785738; Mon, 13 Apr 2026 10:36:25 -0700 (PDT) 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 References: <202508062010.576KA2Mk062184@gitrepo.freebsd.org> In-Reply-To: From: Alan Somers Date: Mon, 13 Apr 2026 11:36:11 -0600 X-Gm-Features: AQROBzBUsdn3ZnjiHOI1ffcNBqDX_x1SIynFSNHQkrD0vHC5sgjwqWWh0DQJtUs Message-ID: Subject: Re: git: 66b5296f1b29 - main - ctld: Add support for NVMe over Fabrics To: John Baldwin Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4fvZMb3Zjyz3P5R X-Spamd-Bar: ---- On Mon, Apr 13, 2026 at 10:56=E2=80=AFAM John Baldwin wro= te: > > On 4/13/26 11:51, Alan Somers wrote: > > On Wed, Aug 6, 2025 at 2:10=E2=80=AFPM John Baldwin w= rote: > >> > >> The branch main has been updated by jhb: > >> > >> URL: https://cgit.FreeBSD.org/src/commit/?id=3D66b5296f1b29083634e2875= ff08c32e7b6b866a8 > >> > >> commit 66b5296f1b29083634e2875ff08c32e7b6b866a8 > >> Author: John Baldwin > >> AuthorDate: 2025-08-06 19:57:50 +0000 > >> Commit: John Baldwin > >> CommitDate: 2025-08-06 19:59:13 +0000 > >> > >> ctld: Add support for NVMe over Fabrics > >> > >> While the overall structure is similar for NVMeoF controllers and > >> iSCSI targets, there are sufficient differences that NVMe support= uses > >> an alternate configuration syntax. > >> > >> - In authentication groups, permitted NVMeoF hosts can be allowed= by > >> names (NQNs) via "host-nqn" values (similar to "initiator-name"= for > >> iSCSI). Similarly, "host-address" accepts permitted host addre= sses > >> similar to "initiator-portal" for iSCSI. > >> > >> - A new "transport-group" context enumerates transports that can = be > >> used by a group of NVMeoF controllers similar to the "portal-gr= oup" > >> context for iSCSI. In this section, the "listen" keyword accep= ts a > >> transport as well as an address to permit other types of transp= orts > >> besides TCP in the future. The "foreign", "offload", and "redi= rect" > >> keywords are also not meaningful and thus not supported. > >> > >> - A new "controller" context describes an NVMeoF I/O controller > >> similar to the "target" context for iSCSI. One key difference = here > >> is that "lun" objects are replaced by "namespace" objects. How= ever, > >> a "namespace" can reference a named global lun permitting LUNs = to be > >> shared between iSCSI targets and NVMeoF controllers. > >> > >> NB: Authentication via CHAP is not implemented for NVMeoF. > >> > >> Reviewed by: imp > >> Sponsored by: Chelsio Communications > >> Differential Revision: https://reviews.freebsd.org/D48773 > > ... > >> +struct target * > >> +conf::add_controller(const char *name) > >> +{ > >> + if (!nvmf_nqn_valid_strict(name)) { > >> + log_warnx("controller name \"%s\" is invalid for NVMe"= , name); > >> + return nullptr; > >> + } > >> + > >> + /* > >> + * Normalize the name to lowercase to match iSCSI. > >> + */ > >> + std::string t_name(name); > >> + for (char &c : t_name) > >> + c =3D tolower(c); > > ... > > > > This makes it impossible to define an uppercase or mixed case target > > name in ctld. I guess the intent was to comply with rfc3722[^1]? > > Even so, it's surprising, because such target names used to work. > > It's also inconsistent, because it's still possible to create an > > uppercase target name using ctladm directly, like this: > > > > ctladm port -c -d iscsi -O cfiscsi_portal_group_tag=3D257 -O > > cfiscsi_target=3Diqn.2018-10.myhost:TESTVOL1 > > > > Should we warn the user if they specify an uppercase target name, or > > even fail to create it? > > > > [^1]: https://datatracker.ietf.org/doc/html/rfc3722 > > Note that this function is for NVMe, not iSCSI. iSCSI targets are create= d in > conf::add_target which has similar code: > > struct target * > conf::add_target(const char *name) > { > if (!valid_iscsi_name(name, log_warnx)) > return (nullptr); > > /* > * RFC 3722 requires us to normalize the name to lowercase. > */ > std::string t_name(name); > for (char &c : t_name) > c =3D tolower(c); > > Prior to the C++ commit, this change was already in place: > > struct target * > target_new(struct conf *conf, const char *name) > { > struct target *targ; > int i, len; > > targ =3D target_find(conf, name); > if (targ !=3D NULL) { > log_warnx("duplicated target \"%s\"", name); > return (NULL); > } > if (valid_iscsi_name(name, log_warnx) =3D=3D false) { > return (NULL); > } > targ =3D new target(); > targ->t_name =3D checked_strdup(name); > > /* > * RFC 3722 requires us to normalize the name to lowercase. > */ > len =3D strlen(name); > for (i =3D 0; i < len; i++) > targ->t_name[i] =3D tolower(targ->t_name[i]); > > targ->t_conf =3D conf; > TAILQ_INSERT_TAIL(&conf->conf_targets, targ, t_next); > > return (targ); > } > > This was present in commit 009ea47eb2d21856af4529aaaca32cd67748daea > which brought in the iSCSI target, so it has always been present > in ctld. > > Also, AFAICT, the names are still accepted, they are just normalized. > > I guess one difference is that before, target_new() called target_find() > with the non-normalized name to check for duplicates, and now we check > for duplicates after normalizing the name. I'm not sure how that worked > in the past in practice as you would have had two targets with the same > name (e.g. I wonder what the ctladm portlist output looked like for this > case and if it would have listed two ports with the same name)? I suspec= t > that was more by accident and probably didn't work properly in practice > (e.g. the kernel handoff ioctl used the normalized name when invoking > CTL_ISCSI, so connections to both "names" probably were always mapped to > only one of the connections, and finding a port during login processing > probably only found the first target, and only if the initiator gave the > all-lowercase name). > > That is to say, you didn't get an error before, but it didn't work, and > now it tells you that it doesn't work AFAICT. Excuse me, I spoke a little too soon. You are correct that ctld has been converting target names to lower case before registering them in the kernel for a long time. The change is that previously, if an initiator attempted to connect to an uppercase target name, ctld would accept it. That's because port_find_in_pg used strcasecmp in stable/14. But change 4b1aac931465f39c5c26bfa1d5539a428d340f20 removed strcasecmp, replacing it by the C++ STL's find method on std::unordered_map. So we used to accept connections case-insensitively, and now we accept them case-sensitively. To restore the previous behavior, should we add tolower() on the target_name in iscsi_connection::login() ? From nobody Mon Apr 13 17:38:57 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 4fvZQT5qY8z6ZShB for ; Mon, 13 Apr 2026 17:38:57 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZQT55z5z3QRk for ; Mon, 13 Apr 2026 17:38:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776101937; 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=zZ22ATWZG5uiWWdyocnBni1PzmmX2ZdpaQcr6fkE2iA=; b=foZietRAL0Xuv7BHp5FjJSq2Hwa3f1bw1XYhlZO5MzoD89RgqYs+WV0sgaWKEI0Y1SXy10 BNxVWH0G1KN9NF8CEN5+XX/kAcGo10G04dZLtFwZkX9GoWGh/CixtCaCSYIZXnxDvKsDDP 8slKbzRjIyOhpLvZeN/rz5O0wBbugPX5TpFUrU1WASfyYrvRnx0D/5vIq7taes+u2puWgc PGEsdyJ9/rFBxoRs/kaUNPw7iJpdXvqnP/6fPcEdweKk+cALAYmym7lLR1pudrYXV07qVH b+AaR57ZeeXPtZItnu4JcQlxzIB3wGeHBdpnXvHEq+2Q/b/66hXZ+Vrp2mCZqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776101937; a=rsa-sha256; cv=none; b=g/yh26tKl1VxCx9lN17xiAtCaeFr25r8zYWjAS3J/FMFO/gAYh6v5wKRgoGLqzZBifNigP zeqUzzl1BYP8F6Sz7NqZvsbPKUp7wceIo5GjZ6O7rouLO39itH5XYqIPGop1H/C7QfWIQ1 CJqa2nSUcG/p6z0Ur/tHfPo3yjKJHXeARtxOxbHSmrmwXCi0k7XaHAXXSEA45yArBFXvlQ l5BTHZBw67wZWZWQgH04Wr9fH0VWZe1DMpccKGhUbMolHsMtUsa5ZfSpDNJgOg4gcHDZN2 p/VHjuvtKK1A0ugtWQMz2BbBl7MxauCNhdLlTtcVIVI3NI3WpQDZvlZbjpOzHQ== 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=1776101937; 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=zZ22ATWZG5uiWWdyocnBni1PzmmX2ZdpaQcr6fkE2iA=; b=S9vyxrzC2OTQfUDpYzyvI3rkpx/PNCC4fvC5BFY1q4rsIeRwPAe8UiKuO1bVAhfelqRgp8 J94Ara1JlJjPMHHE8xNXMg1v5k14m9J+Hj97/y6AULAIgCSiVD9lKiQ5Nz4pXwhdXtEskR 11tfb4390xhoH1/xZEZSSvq/OeKO1r3bu0s1yrYVjnKo6zN7mOldBXAsIZbc2RwoxfZAa3 tKzNn85YwP9o2Ydt1/ViIEQOK5PKIVNPuGS/xuU0NYFefaWrpLFlK5U0dSWPCFt/UzGDqB O8CRwRJtXQgd22l7HA/3SFFCeEhOJDFL9JsvKDmWR65bdV9ktj/1WS2uXCHkew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZQT3XCpz1CyD for ; Mon, 13 Apr 2026 17:38:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31cfa by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:38:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Simon J. Gerraty Subject: git: e272f4a61e78 - main - Fix default for .MAKE.SAVE_DOLLARS 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: sjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e272f4a61e78037ec8477ba9e9afcbe3ae2cd8e3 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:38:57 +0000 Message-Id: <69dd2a31.31cfa.5334a5bf@gitrepo.freebsd.org> The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=e272f4a61e78037ec8477ba9e9afcbe3ae2cd8e3 commit e272f4a61e78037ec8477ba9e9afcbe3ae2cd8e3 Author: Simon J. Gerraty AuthorDate: 2026-04-13 17:38:50 +0000 Commit: Simon J. Gerraty CommitDate: 2026-04-13 17:38:50 +0000 Fix default for .MAKE.SAVE_DOLLARS NetBSD make defaults this to "yes", bmake defauts it to "no" to retain the traditional behavior. The default is dealt with in bmake's Makefile but that does not address boot-strap. For now, just change the ifdef in main. PR: 294436 --- contrib/bmake/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/bmake/main.c b/contrib/bmake/main.c index ace5c729be51..15b028a65241 100644 --- a/contrib/bmake/main.c +++ b/contrib/bmake/main.c @@ -1315,7 +1315,7 @@ ReadFirstDefaultMakefile(void) } #ifndef MAKE_SAVE_DOLLARS_DEFAULT -# define MAKE_SAVE_DOLLARS_DEFAULT "yes" +# define MAKE_SAVE_DOLLARS_DEFAULT "no" #endif /* From nobody Mon Apr 13 17:39:31 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 4fvZR74wRgz6ZT1t for ; Mon, 13 Apr 2026 17:39:31 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZR74BFqz3QhW for ; Mon, 13 Apr 2026 17:39:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776101971; 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=4yKG7yK9SrgBflYGZ4zUmQjgGpvpJXhi6Qr9KI4jeYk=; b=FnMZ46Txbm5nUjgN9TLG4rZUsWD+xbbMpvh3RpQsG+iCk0AeUc66tjtDyGAzH7vFa4Ljc0 u+ty7a0dyvq6hQSgZtmr7vpPSHvw8YKdWfGB7VzejK7goT6m0HO0XAf8sqLkkTVSS6cIhi xSpK5/GPCR6ZfZ341oO2t/hpxTqE8OxeJxPD+qnpr2GTb0wpE/HiGlLv+Lt7xznkXwMv/X hlX4vVkEY53yXs6fySTGbpNxrwNf/XCmIVxIU5j4MLIu1SlJURegchFtEwbWDlJNqn9oh3 ge1biUMQB9O8NThDPpNlLqVEu8KyJ+/whJ07Pebo1SWbg/iporEl3NKJN4z9OA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776101971; a=rsa-sha256; cv=none; b=Sx4tKsrpmNq7FwRoHLGjLHlYnsX5/43UzEGOWxLM2BX17XtSf1A6lSg97vP9ewp8eCd52p VmwCIvcny8ibcRYHTVUB8DG+U1WIH1DkuEH8hlaMHOiu4XDeYPu3hqi2DIXC3zsVK4GAPi g+EsdbxpEiLYLottjeuXHUsOR4D/oOCZZEE2Y2fk9+vMuu8KNuy637ufjtsx+XunFKPkrh vI0euAeHk7Z5wMElYMndJJjJSEZZMCVcZS+DIyKlURrKloQPhlFG7MhPHMwlnl1lUpKtWO EY8Yv+SSmTvKYqx3XIHsp6OlglbOGa3PBokxz1KMSNyWfIQDXI9Y20Uqpk/1ZA== 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=1776101971; 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=4yKG7yK9SrgBflYGZ4zUmQjgGpvpJXhi6Qr9KI4jeYk=; b=REMtzlbF9AZC2dc8rqodIQWbM7jlCp6HtLAB0to9mbT+TIkZGM2RCAS7mGyk44OsBptOpX 4tfQXhcahMAbvwOIokAJF9OzUwImPTK4t+D2i5JDoTDm+rv8IqGNRBpQ7GU0P9YEGMHhae dIx6hIULMP/opJse9AGwKTEzxkvwmx5t1yHp35FWduMC3bRwnWEufTH324uBzkX6jankP/ KyrSgqGizVfEtm+Ibt5LXnZyh8Ar27LI8nWylSgwVYAVeb5Cn0TXG9L4vT+aa+zW9utI13 Q2RToaysvdQpmB9u/9R4elXSlYEitXkPgWp26lzrM7MX19yINuAO48d5xbAimQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZR73l7Lz1CVk for ; Mon, 13 Apr 2026 17:39:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32d39 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:39:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 84e7cd491fdf - stable/15 - tunefs: Better fix for arm64 alignment issues 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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 84e7cd491fdfaa5c2f09e2e79d637c334c12d419 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:39:31 +0000 Message-Id: <69dd2a53.32d39.583088ec@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=84e7cd491fdfaa5c2f09e2e79d637c334c12d419 commit 84e7cd491fdfaa5c2f09e2e79d637c334c12d419 Author: Dag-Erling Smørgrav AuthorDate: 2026-04-07 13:54:28 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-04-13 17:39:24 +0000 tunefs: Better fix for arm64 alignment issues Rather than trust that the compiler will lay out the stack frame the way we expect it to, use a union to force the correct alignment. MFC after: 1 week Fixes: 616f47f176c3 ("tunefs: Fix alignment warning on arm64") Reviewed by: kevans, mckusick Differential Revision: https://reviews.freebsd.org/D56245 (cherry picked from commit 8244dd326265867293b2286efc3d571f06ef0dab) tunefs: Fix pointer arithmetic While here, remove a bogus const which has been there for years. MFC after: 1 week Reported by: ivy@ Fixes: 1b83e8a3f840 ("Constify string pointers.") Fixes: 8244dd326265 ("tunefs: Better fix for arm64 alignment issues") Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D56343 (cherry picked from commit 9d95d806691e4ef1411c6c3b892d8b774754d724) --- sbin/tunefs/tunefs.c | 64 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c index 56f343a5a4db..f3e9306f8ca1 100644 --- a/sbin/tunefs/tunefs.c +++ b/sbin/tunefs/tunefs.c @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -51,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -72,6 +74,11 @@ static int journal_alloc(int64_t size); static void journal_clear(void); static void sbdirty(void); +typedef union { + char buf[MAXBSIZE]; + struct direct dir; +} dirblock; + int main(int argc, char *argv[]) { @@ -631,16 +638,17 @@ journal_balloc(void) static ino_t dir_search(ufs2_daddr_t blk, int bytes) { - char block[MAXBSIZE]; + dirblock block; struct direct *dp; int off; - if (bread(&disk, fsbtodb(&sblock, blk), block, bytes) <= 0) { + if (bread(&disk, fsbtodb(&sblock, blk), &block, bytes) <= 0) { warn("Failed to read dir block"); return (-1); } for (off = 0; off < bytes; off += dp->d_reclen) { - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + dp = (struct direct *)(uintptr_t)(block.buf + off); if (dp->d_reclen == 0) break; if (dp->d_ino == 0) @@ -700,12 +708,13 @@ journal_findfile(void) } static void -dir_clear_block(const char *block, off_t off) +dir_clear_block(dirblock *block, off_t off) { struct direct *dp; for (; off < sblock.fs_bsize; off += DIRBLKSIZ) { - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + dp = (struct direct *)(uintptr_t)(block->buf + off); dp->d_ino = 0; dp->d_reclen = DIRBLKSIZ; dp->d_type = DT_UNKNOWN; @@ -721,21 +730,23 @@ static int dir_insert(ufs2_daddr_t blk, off_t off, ino_t ino) { struct direct *dp; - char block[MAXBSIZE]; + dirblock block; - if (bread(&disk, fsbtodb(&sblock, blk), block, sblock.fs_bsize) <= 0) { + assert((size_t)sblock.fs_bsize <= sizeof(block)); + if (bread(&disk, fsbtodb(&sblock, blk), &block, sblock.fs_bsize) <= 0) { warn("Failed to read dir block"); return (-1); } - bzero(&block[off], sblock.fs_bsize - off); - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + bzero(block.buf + off, sblock.fs_bsize - off); + dp = (struct direct *)(uintptr_t)(block.buf + off); dp->d_ino = ino; dp->d_reclen = DIRBLKSIZ; dp->d_type = DT_REG; dp->d_namlen = strlen(SUJ_FILE); bcopy(SUJ_FILE, &dp->d_name, strlen(SUJ_FILE)); - dir_clear_block(block, off + DIRBLKSIZ); - if (bwrite(&disk, fsbtodb(&sblock, blk), block, sblock.fs_bsize) <= 0) { + dir_clear_block(&block, off + DIRBLKSIZ); + if (bwrite(&disk, fsbtodb(&sblock, blk), &block, sblock.fs_bsize) <= 0) { warn("Failed to write dir block"); return (-1); } @@ -749,15 +760,16 @@ dir_insert(ufs2_daddr_t blk, off_t off, ino_t ino) static int dir_extend(ufs2_daddr_t blk, ufs2_daddr_t nblk, off_t size, ino_t ino) { - char block[MAXBSIZE]; + dirblock block; - if (bread(&disk, fsbtodb(&sblock, blk), block, + assert((size_t)sblock.fs_bsize <= sizeof(block)); + if (bread(&disk, fsbtodb(&sblock, blk), &block, roundup(size, sblock.fs_fsize)) <= 0) { warn("Failed to read dir block"); return (-1); } - dir_clear_block(block, size); - if (bwrite(&disk, fsbtodb(&sblock, nblk), block, sblock.fs_bsize) + dir_clear_block(&block, size); + if (bwrite(&disk, fsbtodb(&sblock, nblk), &block, sblock.fs_bsize) <= 0) { warn("Failed to write dir block"); return (-1); @@ -846,19 +858,17 @@ journal_insertfile(ino_t ino) static int indir_fill(ufs2_daddr_t blk, int level, int *resid) { - char indirbuf[MAXBSIZE]; - ufs1_daddr_t *bap1; - ufs2_daddr_t *bap2; + union { + char buf[MAXBSIZE]; + ufs1_daddr_t ufs1; + ufs2_daddr_t ufs2; + } indir = { 0 }; + ufs1_daddr_t *bap1 = &indir.ufs1; + ufs2_daddr_t *bap2 = &indir.ufs2; ufs2_daddr_t nblk; - int ncnt; - int cnt; - int i; + int cnt = 0, ncnt; - bzero(indirbuf, sizeof(indirbuf)); - bap1 = (ufs1_daddr_t *)(uintptr_t)indirbuf; - bap2 = (void *)bap1; - cnt = 0; - for (i = 0; i < NINDIR(&sblock) && *resid != 0; i++) { + for (int i = 0; i < NINDIR(&sblock) && *resid != 0; i++) { nblk = journal_balloc(); if (nblk <= 0) return (-1); @@ -875,7 +885,7 @@ indir_fill(ufs2_daddr_t blk, int level, int *resid) } else (*resid)--; } - if (bwrite(&disk, fsbtodb(&sblock, blk), indirbuf, + if (bwrite(&disk, fsbtodb(&sblock, blk), indir.buf, sblock.fs_bsize) <= 0) { warn("Failed to write indirect"); return (-1); From nobody Mon Apr 13 17:39:40 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 4fvZRK09sGz6ZTDy for ; Mon, 13 Apr 2026 17:39:41 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZRJ6J6Zz3R0y for ; Mon, 13 Apr 2026 17:39:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776101980; 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=Mra76PogTbD9AQaQ5voP03GpKaXJESlU4tQIvZU5CYg=; b=OjtpUr+EF5zPvPgiio5MId4O4SpHPzmgJxATJjLcvdHm6e9FgzRGfYckHZRQl4rtkU+he+ jso5aYizzwxzDOgwRDIHMnom+SAm9xrWidll3XKHqW9RYv6C7mQmvZBk8sMvkxDodVdduh FD1sU5NlQil0z6Wjgx5bvNY0z15BYOf9H0VPUly8g58QBHwKe0J6jLBHXHspwOSi1FcEWo 0OMy7W7vPUBIavUnXFl2ACjuJmrqYRgU0Q7V+MNvXmWv+DS5FkTKTC5YzH81r7demteNcS B5psK0gEWL4H696kt3vAOYPa+MmWbWu2bsOFxNa9zzXFWYK2LHraF2EtTQLWLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776101980; a=rsa-sha256; cv=none; b=SgkTHlSLTBiwIqRNNqkYKVsZsZp5sW8ILIdlyRX+Op7bU+ZDC2O6wLXWHfBlF1l5OpgEMZ jpAmMibNs1eze4KvVRx4X5+FXShTGBO2vvzcjXvFPx6hiTvLFEkN1bdEyCOt9vFAgzCXuZ frKDTstSJJYTuUFwb1TTJGtEnUfW5ZszcdJ2pj3w0OJ62s56UGNxxGKiRDeEptYr6NmSpb 25WZR4mMqvsXv5rVlNxschIU5DEdCyRGYhD8nfW9GTo9MQV76bbr8vACiu7F7RMqGiz6aT kOlBm+N6d5pPM3zmZGOBOC0z+bqw8TCnIAGFpjfzXjZCFFa3aSX1nJeayp4pAw== 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=1776101980; 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=Mra76PogTbD9AQaQ5voP03GpKaXJESlU4tQIvZU5CYg=; b=rUZJGJWAzF1t0ZQaPIK235Lv1t2xBgTIHUCdt/h/l4Ngl5feCVV5YiOTOKrslvt0cmY4pB vC+3RIa9m3bM5GgkomqY4VIj70wcpmN2tZuGu3/k4WHi1zJJITuz0E1XeW1UUeadpgOROY LpkUXUkM+nM83bl9LIDt4vXTx61XeEezw8kFe+8Iodu9EaRttCuH6fzqL3eIZB52OvM3gO tUXS/i2MLP7nygVPvGUww4jEZfI/qK/zRUGN0a/ym+ajSGSu2A5LlpL8V2wdTOTzHYAgvg bYMUSd1t4eLx4Lr5X610jdY2t5X+k0DhKS8R51iZ6a9jW5MGghlt0fiM3w+Jeg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZRJ5tGPz1CYR for ; Mon, 13 Apr 2026 17:39:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 342b0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:39:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: c4266d84c56f - stable/14 - tunefs: Better fix for arm64 alignment issues 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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: c4266d84c56f845945349a83801d99ca9ecf5d3a Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:39:40 +0000 Message-Id: <69dd2a5c.342b0.4e5c1108@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c4266d84c56f845945349a83801d99ca9ecf5d3a commit c4266d84c56f845945349a83801d99ca9ecf5d3a Author: Dag-Erling Smørgrav AuthorDate: 2026-04-07 13:54:28 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-04-13 17:39:36 +0000 tunefs: Better fix for arm64 alignment issues Rather than trust that the compiler will lay out the stack frame the way we expect it to, use a union to force the correct alignment. MFC after: 1 week Fixes: 616f47f176c3 ("tunefs: Fix alignment warning on arm64") Reviewed by: kevans, mckusick Differential Revision: https://reviews.freebsd.org/D56245 (cherry picked from commit 8244dd326265867293b2286efc3d571f06ef0dab) tunefs: Fix pointer arithmetic While here, remove a bogus const which has been there for years. MFC after: 1 week Reported by: ivy@ Fixes: 1b83e8a3f840 ("Constify string pointers.") Fixes: 8244dd326265 ("tunefs: Better fix for arm64 alignment issues") Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D56343 (cherry picked from commit 9d95d806691e4ef1411c6c3b892d8b774754d724) --- sbin/tunefs/tunefs.c | 64 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c index 4dbdaf3db574..ae52143beeaf 100644 --- a/sbin/tunefs/tunefs.c +++ b/sbin/tunefs/tunefs.c @@ -56,6 +56,7 @@ static char sccsid[] = "@(#)tunefs.c 8.2 (Berkeley) 4/19/94"; #include #include +#include #include #include #include @@ -63,6 +64,7 @@ static char sccsid[] = "@(#)tunefs.c 8.2 (Berkeley) 4/19/94"; #include #include #include +#include #include #include #include @@ -84,6 +86,11 @@ static int journal_alloc(int64_t size); static void journal_clear(void); static void sbdirty(void); +typedef union { + char buf[MAXBSIZE]; + struct direct dir; +} dirblock; + int main(int argc, char *argv[]) { @@ -643,16 +650,17 @@ journal_balloc(void) static ino_t dir_search(ufs2_daddr_t blk, int bytes) { - char block[MAXBSIZE]; + dirblock block; struct direct *dp; int off; - if (bread(&disk, fsbtodb(&sblock, blk), block, bytes) <= 0) { + if (bread(&disk, fsbtodb(&sblock, blk), &block, bytes) <= 0) { warn("Failed to read dir block"); return (-1); } for (off = 0; off < bytes; off += dp->d_reclen) { - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + dp = (struct direct *)(uintptr_t)(block.buf + off); if (dp->d_reclen == 0) break; if (dp->d_ino == 0) @@ -712,12 +720,13 @@ journal_findfile(void) } static void -dir_clear_block(const char *block, off_t off) +dir_clear_block(dirblock *block, off_t off) { struct direct *dp; for (; off < sblock.fs_bsize; off += DIRBLKSIZ) { - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + dp = (struct direct *)(uintptr_t)(block->buf + off); dp->d_ino = 0; dp->d_reclen = DIRBLKSIZ; dp->d_type = DT_UNKNOWN; @@ -733,21 +742,23 @@ static int dir_insert(ufs2_daddr_t blk, off_t off, ino_t ino) { struct direct *dp; - char block[MAXBSIZE]; + dirblock block; - if (bread(&disk, fsbtodb(&sblock, blk), block, sblock.fs_bsize) <= 0) { + assert((size_t)sblock.fs_bsize <= sizeof(block)); + if (bread(&disk, fsbtodb(&sblock, blk), &block, sblock.fs_bsize) <= 0) { warn("Failed to read dir block"); return (-1); } - bzero(&block[off], sblock.fs_bsize - off); - dp = (struct direct *)(uintptr_t)&block[off]; + assert(off % alignof(struct direct) == 0); + bzero(block.buf + off, sblock.fs_bsize - off); + dp = (struct direct *)(uintptr_t)(block.buf + off); dp->d_ino = ino; dp->d_reclen = DIRBLKSIZ; dp->d_type = DT_REG; dp->d_namlen = strlen(SUJ_FILE); bcopy(SUJ_FILE, &dp->d_name, strlen(SUJ_FILE)); - dir_clear_block(block, off + DIRBLKSIZ); - if (bwrite(&disk, fsbtodb(&sblock, blk), block, sblock.fs_bsize) <= 0) { + dir_clear_block(&block, off + DIRBLKSIZ); + if (bwrite(&disk, fsbtodb(&sblock, blk), &block, sblock.fs_bsize) <= 0) { warn("Failed to write dir block"); return (-1); } @@ -761,15 +772,16 @@ dir_insert(ufs2_daddr_t blk, off_t off, ino_t ino) static int dir_extend(ufs2_daddr_t blk, ufs2_daddr_t nblk, off_t size, ino_t ino) { - char block[MAXBSIZE]; + dirblock block; - if (bread(&disk, fsbtodb(&sblock, blk), block, + assert((size_t)sblock.fs_bsize <= sizeof(block)); + if (bread(&disk, fsbtodb(&sblock, blk), &block, roundup(size, sblock.fs_fsize)) <= 0) { warn("Failed to read dir block"); return (-1); } - dir_clear_block(block, size); - if (bwrite(&disk, fsbtodb(&sblock, nblk), block, sblock.fs_bsize) + dir_clear_block(&block, size); + if (bwrite(&disk, fsbtodb(&sblock, nblk), &block, sblock.fs_bsize) <= 0) { warn("Failed to write dir block"); return (-1); @@ -858,19 +870,17 @@ journal_insertfile(ino_t ino) static int indir_fill(ufs2_daddr_t blk, int level, int *resid) { - char indirbuf[MAXBSIZE]; - ufs1_daddr_t *bap1; - ufs2_daddr_t *bap2; + union { + char buf[MAXBSIZE]; + ufs1_daddr_t ufs1; + ufs2_daddr_t ufs2; + } indir = { 0 }; + ufs1_daddr_t *bap1 = &indir.ufs1; + ufs2_daddr_t *bap2 = &indir.ufs2; ufs2_daddr_t nblk; - int ncnt; - int cnt; - int i; + int cnt = 0, ncnt; - bzero(indirbuf, sizeof(indirbuf)); - bap1 = (ufs1_daddr_t *)(uintptr_t)indirbuf; - bap2 = (void *)bap1; - cnt = 0; - for (i = 0; i < NINDIR(&sblock) && *resid != 0; i++) { + for (int i = 0; i < NINDIR(&sblock) && *resid != 0; i++) { nblk = journal_balloc(); if (nblk <= 0) return (-1); @@ -887,7 +897,7 @@ indir_fill(ufs2_daddr_t blk, int level, int *resid) } else (*resid)--; } - if (bwrite(&disk, fsbtodb(&sblock, blk), indirbuf, + if (bwrite(&disk, fsbtodb(&sblock, blk), indir.buf, sblock.fs_bsize) <= 0) { warn("Failed to write indirect"); return (-1); From nobody Mon Apr 13 17:39: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 4fvZRR198cz6ZT8L for ; Mon, 13 Apr 2026 17:39:47 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZRQ5QYmz3RKP for ; Mon, 13 Apr 2026 17:39:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776101986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XBYKfig8z6uRpzf+oDypTQP8ILhhCXL2flRgzCv7T5M=; b=J4EeXwUg8/Mf1F+WTsyC3akhRg/e3dcTih+aP3ueuKUUxDBFE/PnuG17gaKyAjdiK09kms ktYofddy3ayKr9KgUz5qgpjAEVQSrYsLep5AGU6qLaaCh0ADpXiRrrgvLMPSa5C5n1I0NP wXPRKtIRGJZ9oyTnx0dbGRd0Rw96uN+ZBby//iNEjB/Bd/4pNIQHIKi1iamtiGNtcZNZ7K Zx6X4ExAmItaNxxdvwXrAVD+DEY3ufPnmqo3CeXerDszGF7XZdl+oVO5JFNIoHjltCKj8u K409ZS+D5TpKpTxJe6KExAYUX5Dz5k2VSvaEJ3jKnnewN+tO/yqkiUyZY3EuCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776101986; a=rsa-sha256; cv=none; b=oa9NfwKfovoEv6VtVMJFF85T6SA6t2t399Ja8W+rbm/iQsKg2JDtwCI4YXf+L9La4uPo07 y+hbAtxsaqvlqtgujyeAUcvw2vFPc8pvbaAa6wTC70+UQ807eQKwKT9KWNCyJ6K8ad3aon z3Fvn0RfbnyEQexQkb1IAZ+yGATsVKT3ccfFDFw2bzC7HKL/4Uf/75yB8dfOu8yzmcAcQ2 pYwydhWLxMNw7kWmN6iKLVWgu1o67Y0IRfZc3JYm0jDmPPAAY87Ptu8VpDpy+t/h6moR+W CxxdqCmrd/WkxddzWYiEt3xrkKVqGr1vIa6fTXpd9i3ysxsohkYxKSZYLMdANg== 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=1776101986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XBYKfig8z6uRpzf+oDypTQP8ILhhCXL2flRgzCv7T5M=; b=vIMXafddhbF+SyC7BBt2/A0Zvp76t73qDoxCG1iyupglBpjac7Bh3inS1Br7w/K+ftpE6f ywrgginHHjrUdW1Q9PYr+lIDB1wEtRuNPRpmGDtSy5YqzPamhD6aFxt3/2QAU2dXzcQrAQ rsVHsNEED3V8xtfJiiiLD62qXwgQ2WMa08XpgcXSlo329Iu7a1j9dJGefkADJrj4gLqMms A9aYcvIBq3GD7626lk5LTJdsypo4Mp6goVOpWMUj9EkuuWzGzGn79ul1RGQCOPjxQmF9yt ImZVopRKXnlOKeLna89tNwHIwOzMFrCIVLo8jdBC4eApWLYgXeCrDCGjJDW/CA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZRQ408nz1CNG for ; Mon, 13 Apr 2026 17:39:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32a39 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:39:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Kyle Evans Subject: git: b06d6b9ebbc6 - stable/15 - kqueue_fork_copy_knote(): zero kn_knlist for the copy before calling knlist_add() 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: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b06d6b9ebbc6d2681cecc15bd6c1ece6a816ef73 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:39:46 +0000 Message-Id: <69dd2a62.32a39.2e3e3f57@gitrepo.freebsd.org> The branch stable/15 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=b06d6b9ebbc6d2681cecc15bd6c1ece6a816ef73 commit b06d6b9ebbc6d2681cecc15bd6c1ece6a816ef73 Author: Konstantin Belousov AuthorDate: 2026-04-02 11:02:14 +0000 Commit: Kyle Evans CommitDate: 2026-04-13 17:39:41 +0000 kqueue_fork_copy_knote(): zero kn_knlist for the copy before calling knlist_add() Reported by: pho, dhw Sponsored by: The FreeBSD Foundation (cherry picked from commit aab1ef4527f1b0935add3e8dba9e928e0623376f) --- sys/kern/kern_event.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 4db5c6669470..01731ca46b6b 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -3092,6 +3092,7 @@ kqueue_fork_copy_knote(struct kqueue *kq1, struct knote *kn, struct proc *p1, kn1->kn_status |= KN_DETACHED; kn1->kn_status &= ~KN_QUEUED; kn1->kn_kq = kq1; + kn1->kn_knlist = NULL; error = fop->f_copy(kn1, p1); if (error != 0) { knote_free(kn1); From nobody Mon Apr 13 17:43:20 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 4fvZWd6cdTz6ZTMN for ; Mon, 13 Apr 2026 17:43:25 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZWd4ntDz3SSV for ; Mon, 13 Apr 2026 17:43:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776102205; 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=p7Qk3/Bsa+8JbHlLEpAZEpkfHGAzD9/RXQzg7vutvkc=; b=eo4CzIoygICW1qao2nGZYKby2BwFhBPMv2TLictlKNBmuvBq50QPI6oFa9KZ/+tL3+BoBq 79gjVyDlquTBFgD2qiTG1/N6NBdrCYfqumKgLknFlAwELgVRgAv+svg4Au5hVedW4K/Hhq 6IXORbg3YNrMkmMRoIAgrMc3h8OnJbe8c2MbBznrh8LnTEwzUX/jQNBSvsgs9F8Q4tlJx9 gK6YIxFwb5JdHwW2DrX/a6cLIIym7U6cbFYs+T4vhXK8JRhpZruet0ua5dE5sFbTRDJGa5 EIwI9OG5B5G6jDOmm8nBA9I8CvhImWjFbOjKSTmA8HBts8X6fg1EHEkBF4Etpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776102205; a=rsa-sha256; cv=none; b=utU1HQmxVc3D/c1U29FkoqihvEVCRTzQb40lNoKH9BAjWM6ntDr5YCeSvgV+GOfv0tni1P kzZDgJv4N9WkW2kxSEVTfwursLmz7UgbS5qmTbk7DrqSBEAhcv+hIqy5x0ruyvm/Ncu0Yd i5eSFbo5ie7vzg9oio7CmV0svIDSiPxhGTtJgwFq4+wW4FBgSzUdPs7CLepvLRvMXwMd7U RbbUAkUy1jmgUCPTimcYMD2StYrVIZKkwWQhTOCK+TNMJlGWtUDpkj1m5oqYhijHuGrim2 FMSE/p5aWvCi3D3AXQrdk0FCGOnPADUtw4V0LLFBRvy5hbxlDjqq2vIgF3W49A== 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=1776102205; 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=p7Qk3/Bsa+8JbHlLEpAZEpkfHGAzD9/RXQzg7vutvkc=; b=rndui14k318QPiiMtm9xM4puM4JTECahikmEQArmNxmFXRR7hM6U/f5V6BOFt/APXDuzv0 LoVo6Ee1R54JAI2gJgoCtnwdyhg9+yyIwjNL284D3kYKi7G42WEr6BvPcl0dW2u84BvqYv rceXWIDbfgVw/JedjmfUvgDR8Wkr7crqUfa8AJcMIQsxPPNKGjN2/N/YsJlXyK8qppBjKc f78kfuloL8D8ZXT6SqpMw9qFiy0hXcySBPdefRjLLKVU+cpOaa19xZ1nRv14l7m5HJbZMD AqMtEe4wmogq11iG0eDDOXqIo0tHJuH5eLUY51TfHkPbQMZSF9DSXFl/5kn4aQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZWd41XFz1M for ; Mon, 13 Apr 2026 17:43:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31d6f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:43:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: dc6149102509 - stable/14 - fmax.3: Add caveat for going beyond C std requirements 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: dc61491025091d9e61048cc3cfb18d25ed354a8b Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:43:20 +0000 Message-Id: <69dd2b38.31d6f.fc670d3@gitrepo.freebsd.org> The branch stable/14 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=dc61491025091d9e61048cc3cfb18d25ed354a8b commit dc61491025091d9e61048cc3cfb18d25ed354a8b Author: Ed Maste AuthorDate: 2026-04-02 21:59:42 +0000 Commit: Ed Maste CommitDate: 2026-04-13 17:43:05 +0000 fmax.3: Add caveat for going beyond C std requirements libm's fmax and fmin family of functions treat +0.0 as greater than -0.0. This is not required by the C standard, so the user may not see this behaviour due to compiler optimization. PR: 294214 Reviewed by: fuz Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56230 (cherry picked from commit 7764e9ca28a9702aed4ba7391e055ec2fcf35c41) (cherry picked from commit 855507463e0d3903d31aa7c084efbf4f819b5d63) --- lib/msun/man/fmax.3 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/msun/man/fmax.3 b/lib/msun/man/fmax.3 index 25fc9b6d518a..873a19375ce5 100644 --- a/lib/msun/man/fmax.3 +++ b/lib/msun/man/fmax.3 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd June 29, 2004 +.Dd April 6, 2026 .Dt FMAX 3 .Os .Sh NAME @@ -68,10 +68,6 @@ functions return the smaller of .Fa x and .Fa y . -They treat -.Li +0.0 -as being larger than -.Li -0.0 . If one argument is an \*(Na, then the other argument is returned. If both arguments are \*(Nas, then the result is an \*(Na. These routines do not raise any floating-point exceptions. @@ -90,6 +86,13 @@ and .Fn fminl functions conform to .St -isoC-99 . +.Sh CAVEATS +The library implementations of these functions treat +.Li +0.0 +as being larger than +.Li -0.0 . +This behavior is not specified by the C standard, is not portable, +and may not occur in light of compiler optimizations. .Sh HISTORY These routines first appeared in .Fx 5.3 . From nobody Mon Apr 13 17:44:05 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 4fvZXQ0F70z6ZT79 for ; Mon, 13 Apr 2026 17:44:06 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvZXP67bqz3T5P for ; Mon, 13 Apr 2026 17:44:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776102245; 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=GXPkSylKhPbXyH4cpV9pKiXfCGc0GlIKd1ilNGNz5ks=; b=O7hERN3Htud8wgghZ69tSYUgNzwuSk+buA4aQ7MHHQnUPbldoY9AYv3IXSZZX9OiRlIapG VG9kq+VJ5Er+wvEJanbKLP3SpE/BAecbx6WE8CU8LmnVsEVdVBJMxCMKYXT4Hy+emoZa+M d48YRrYkk7/wWseqPwwlzGO6fZT+BVmAZVyfVxG9PRdw2+TO/cM1aw7LaxgyohPI8WMWYQ 5EQM42k8QmRzpxFUTZKWWJiU95uc+DjLpq4u960gFnhBpi8rIr8V+gnGmwjQz3mVx8h/lN QmxuS8vVfYw7Ngg4+Vu7TaFHThoIJZBKiLib4681kQGYOC3ER5hReIZ0Heou5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776102245; a=rsa-sha256; cv=none; b=W9JyzQmR8nQCKOW2cHDturCVZ4bXJ9yKzmAXi/D7+bwCcEp+U6X8Fi76gRYADtZFqX0eTB VnvL9b7grKBI67RLyQL63xSL1tW8ZxZpL108Hdj2OSRT0TXcaJVfG1YC19qIX9BFaDciNK W3LEkTgFl9yX8wQNm1Cb/dXFu30C6mIZgsUGDfSeWZ084A66aAc8jEJVw5dbVPEmCYPWy3 ZAV9nYY+eFbUmsZOhNgnepLdGUYv7fXAqGDIKGHmjxQWwffD4WYRYjK6TSKUr6NIbHqefT /w4KsDD04mNyqv3UtEGc99H1BjC7OvU+3G1wFJq8vyiDtvo6MXFHecMt217Qag== 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=1776102245; 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=GXPkSylKhPbXyH4cpV9pKiXfCGc0GlIKd1ilNGNz5ks=; b=cc9TU+eY30Hy9OHbCZGH7UXpoosIYOIWZgZHvNIzyR5c2kKrdvbcgkfi1MaHF5uOjw45/8 wfLLRpM8Jpcv1XShbbzuoi0bRslgMEcijv2CCXlNC4MuOzY3MP4QNbTCfwRcofDDbAt7ih X3dzEb0QwE4yQ6mrPtKzrxap/LQVKr3Gz1YNdd/BhIG2qx9halJAocfS7gS1SAXG8fvknT xe4YPqPk//egU9hpsHEd2b7YTbiARH14RdrAal8KCV9u5XefoB2AaiRWLT6M7g/KqEH8Kj hhXnpu3fJL/oyRisNIo9Uf9UWDxPLq+Y7OZibOpG//I5EP96NAuP46ufUN75ZA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvZXP5l3Rz1N for ; Mon, 13 Apr 2026 17:44:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 35f35 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 17:44:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Ed Maste Subject: git: 8b8ae24e08c9 - stable/15 - stand: Force disable RETPOLINE for boot loaders 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 8b8ae24e08c97623cfc464394ca85f86db38bdff Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 17:44:05 +0000 Message-Id: <69dd2b65.35f35.76c14434@gitrepo.freebsd.org> The branch stable/15 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=8b8ae24e08c97623cfc464394ca85f86db38bdff commit 8b8ae24e08c97623cfc464394ca85f86db38bdff Author: Ed Maste AuthorDate: 2026-03-24 14:53:13 +0000 Commit: Ed Maste CommitDate: 2026-04-13 17:43:47 +0000 stand: Force disable RETPOLINE for boot loaders Boot loaders do not require speculative execution protection, and may be too large if enabled. Reported by: Shawn Webb Reviewed by: dim, imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56068 (cherry picked from commit 61f78130c2f3a6abaa70bd66d6d6974060fb3d04) --- stand/defs.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/stand/defs.mk b/stand/defs.mk index eb4133b604eb..2cf1893a6159 100644 --- a/stand/defs.mk +++ b/stand/defs.mk @@ -11,6 +11,7 @@ FORTIFY_SOURCE= 0 MK_CTF= no MK_SSP= no MK_PIE= no +MK_RETPOLINE= no MK_ZEROREGS= no MAN= .if !defined(PIC) From nobody Mon Apr 13 19:36:52 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 4fvd2d6t04z6Zbv6 for ; Mon, 13 Apr 2026 19:36:57 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvd2d5yhxz3kQB for ; Mon, 13 Apr 2026 19:36:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776109017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=992pLBYu54X9OkWYcF/jh4WIHl+JpP3FVPC63ZhydfA=; b=BRmRoC3sK2VK10uyhCK7CTT5lgvMz33+77JliJvR7HDLqsFztnATZFgk0Fom+5Ztu2By81 ZJ6ICTOsLknblWVzoEuGsYWEYL+CgkDrFM71Vq3G+WqhfbWs2J7dGoCJyFflbtQTIvjDzN ulpIL+K+ZykeDaDJ1vQDDKw5wvQ3IBiEZBjm8Pi2Qon3b5NWtGP4L++0A4sxctHD6TmJq+ jWa0JPlULbxQ4s3tSfUZ3FngORJxEDbgLvGSWeFU0g8ITkugbXQa6VpCO3mwTnI+/M4U8G yPkTyKl/siVK6Obt4snz8vCxbccQzjZkEQkwo9AfGCu17xK2x9mUDgzlitZauw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776109017; a=rsa-sha256; cv=none; b=YlacLqduCXl+8ZPbviCEFh81Q2sa/OWER/KU0BDS5rJcYIDiBuso0/DYHrnpaBevWyuRev ZBIC3/N7In7fSYhiZKjx00bck50SJjAuZ6opYm7wBgUD/bT3f3r54qEOdHjAhzmya60Yb1 PRvqumksYmJuXU9sHu9t0znpQ0b1M4khU9em7s+hLKBCSdq8Q5feLcZoJ44hUAl60ERX0H 6gNbNwECAnrnKKJsaP+sbinkd9Flxd1PIZIunC0tExjp8c32yGcIrR8Tenx/PBfCdEbmFR KL3JsREQ8rovPyn7R4jURHVC0SdEjPDExLlXCoadwEsaesCPRIlImDL8DwogVg== 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=1776109017; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=992pLBYu54X9OkWYcF/jh4WIHl+JpP3FVPC63ZhydfA=; b=cHZoXHJcKCKZ0QGGfwLCIK1vwC92aAv/E7O6krx0HNdpJvQCenleVsajkbDQo6DxNmHIKd wvHLotHnIKKMWDTfvGDAAr/+LY4l255ovfqAKPokiP3UtIGkCoZQk+Ue0iQs+4fZMMDAg+ 07zZbpeZXPnaKajGD50uG5JVbYAfyOJ1+h8jUTUzGZU4H4KVxq7kBlfSwtNjLAUT7wOnE1 PIrdlb6A7JvlaeX0GvEMj5sl8KOIqyxa8w57wC3U+8Hcb4ZNj/SOHVTnBCeZwmQ2/K4k8b E3bwaD+ZVS/OUNtNtRfD5cLT/asK23hUZlQOBWde0zwdeMK3BgOjiBrGkf2fYg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvd2d5Vx0z35Q for ; Mon, 13 Apr 2026 19:36:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40714 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:36:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Isaac Freund From: Ed Maste Subject: git: 2018ae4e3b6a - main - pkgbase: remove incorrect clang shlib requires 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2018ae4e3b6a2d7c147933cb36642f6a54830907 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:36:52 +0000 Message-Id: <69dd45d4.40714.899194b@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=2018ae4e3b6a2d7c147933cb36642f6a54830907 commit 2018ae4e3b6a2d7c147933cb36642f6a54830907 Author: Isaac Freund AuthorDate: 2026-01-20 14:57:17 +0000 Commit: Ed Maste CommitDate: 2026-04-13 19:36:15 +0000 pkgbase: remove incorrect clang shlib requires The FreeBSD-clang package contains a 32-bit shared object at /usr/lib/clang/19/lib/freebsd/libclang_rt.asan-i386.so This is expected, since clang uses this object when compiling for i386 targets with asan enabled. What is not expected is that the FreeBSD-clang package currently depends on 32-bit libc packages due to pkg's shared library analysis, making it impossible to install pkgbase on x86_64 without any lib32 packages. This commit leverages a new pkg feature implemented in [1], but could be landed before a pkg version including that feature is released without any ill effects. Unknown keys in package manifests are ignored. [1]: https://github.com/freebsd/pkg/pull/2594 Reviewed by: ivy Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54792 --- release/packages/ucl/clang.ucl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/release/packages/ucl/clang.ucl b/release/packages/ucl/clang.ucl index 3c15d9b7ef03..deee636dc0a7 100644 --- a/release/packages/ucl/clang.ucl +++ b/release/packages/ucl/clang.ucl @@ -7,3 +7,8 @@ deps { version = "${VERSION}" } } + +shlibs_required_ignore: [ + "libc.so.7:32", + "libgcc_s.so.1:32", +] From nobody Mon Apr 13 19:44:05 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 4fvdBy5X8Zz6ZcdS for ; Mon, 13 Apr 2026 19:44:10 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdBy2VBHz3ll3 for ; Mon, 13 Apr 2026 19:44:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776109450; 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=ekPAYiZpXzOfh1iCAQNft+Az3grk8IeRycqjkUlg+jg=; b=K9/E2H9UYtRo/JRG94V/IKZsOKQf3CDi/QvAh+r/VujI6c9EPXfcdSPwyCDTp/DmfInptH nhxNF5ztOIE7chCjhHKAAKKSCtZ+hZpK1lJ6xSAYQJhs40oKrZi6KKrdFAj89940l/l9Bt 7tR4GZhGJqJZAC42paO06D65JgEKrMB40scxE56/Sx5LcQUELMoGpec2JXnCEzqEE4GLax /jetqvqqlK6r6E+a+tCtjpitDKxvq7bgq+4YZhUInVZsLMOcMz0hIOGprkoHX9Yw927aPi avskM+HjSBHa9G98+m9Sav8SGgcR4eNzaoh3mjE6/M2jhnrZLg1VL+GH/lsCWw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776109450; a=rsa-sha256; cv=none; b=t3z2a14OWtpMuBaW3g0Wug9dcOM8jePp05D1NHhDmtW6Z5ViUonKFPd431rkyFvKjzmxDA I/U38dQHpndE0wheCbnLGND0QGtaVzj8EBPQcmS7sl9//WIHRfuAhzC6UhO4jbAuNMG60R GzVU4rHDcOhXUauX67UNk5B1HiMIRokelO1sKK/vFTRnvR3r1Qhe+ZByLdFJZknLKbXWUi c3cdQ702oxBk8VenJz72zzHj6PSoxocKqifnNMg9j2QjQ1m1vg4kBWx5xcrlv+s/B7+HZ1 DwbYoKa8Nh6wLlKczfJ+U+YR6sTCsViViO61ye7xUM1uQ0MJcD3R5Bs3mVY77g== 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=1776109450; 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=ekPAYiZpXzOfh1iCAQNft+Az3grk8IeRycqjkUlg+jg=; b=ftMXw+tKlco0aZ/jqwuEAXBqoeIhE6d3PhowZheWvFVk3X4g7j7JhZOg4kFHEG+MNdUSfb pJWLSif32g7hRuxkgXk+yFsYyvXiss7C8FemKPTKuGXN/Mp6kLfm60c2jwwYbkIPgYq+ol 6B9nUizhZI0OE4oZGn0spRQowm8PUfDU70SM3fUaBDmgJUWpuODQmYBN+kNjXdt+wgwVVh 51PPDnT7tu2qAJm9Du6ikoyJfetnpY3JrnkZ9YQcOqGKL9PIyxsMapgtyqGJHpqCqlB0Lx e/tsAYyxsU0lYj9pxI8k75kew3+vNeA4RG1snw3jeklpA/xZpW/dLdqhsTM46g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdBy22r8z3NL for ; Mon, 13 Apr 2026 19:44:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41bd8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:44:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Colin Percival Subject: git: fa31e76a4c14 - main - Revert "EC2: Add clibs-lib32 pkg to small/builder images" 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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: fa31e76a4c147eb5148595c9f3615040fcac74e5 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:44:05 +0000 Message-Id: <69dd4785.41bd8.45bffee@gitrepo.freebsd.org> The branch main has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=fa31e76a4c147eb5148595c9f3615040fcac74e5 commit fa31e76a4c147eb5148595c9f3615040fcac74e5 Author: Colin Percival AuthorDate: 2026-04-13 19:42:57 +0000 Commit: Colin Percival CommitDate: 2026-04-13 19:42:57 +0000 Revert "EC2: Add clibs-lib32 pkg to small/builder images" This should no longer be necessary after 2018ae4e3b6a. This reverts commit cfe0b7d37e552d78762c029f5b15e0f36d9d0d38. --- release/tools/ec2-builder.conf | 1 - release/tools/ec2-small.conf | 1 - 2 files changed, 2 deletions(-) diff --git a/release/tools/ec2-builder.conf b/release/tools/ec2-builder.conf index a272ea49a426..3b0344f9eb9a 100644 --- a/release/tools/ec2-builder.conf +++ b/release/tools/ec2-builder.conf @@ -17,7 +17,6 @@ vm_extra_filter_base_packages() { -e '.*-dbg$' \ -e '.*-lib32$' \ -e '^FreeBSD-set-tests' - echo FreeBSD-clibs-lib32 } # Packages to install into the image we're creating. In addition to packages diff --git a/release/tools/ec2-small.conf b/release/tools/ec2-small.conf index c1a05f98356f..6564a59c2cf6 100644 --- a/release/tools/ec2-small.conf +++ b/release/tools/ec2-small.conf @@ -20,7 +20,6 @@ vm_extra_filter_base_packages() { -e '.*-dbg$' \ -e '.*-lib32$' \ -e '^FreeBSD-set-tests' - echo FreeBSD-clibs-lib32 } # Packages to install into the image we're creating. In addition to packages From nobody Mon Apr 13 19:53:28 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 4fvdPh3kSHz6Zchm for ; Mon, 13 Apr 2026 19:53:28 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdPh2wkqz3mFx for ; Mon, 13 Apr 2026 19:53:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bd7GrozHq5xkGkWO6/uKvGSpIK5JGpmU1oDlrl3G7DE=; b=LqTw9RfbTBbkqY5NF75kX9BkyWLuZzx3akUVKTI0hPoj17/7OvfR2gchedrNmgg/UB0uT7 fLWx0Blg9Zcn0h5227z2JLQKgD9oOxBJJRgSjIjY+A/oqdobuJ9yk6EyLA4/io1CQgPgyV 5mEHS2XGFIa7iU21r1kxv7MVi5Gdsc9Kujv31rYanUCxRDuoFt7z0fPhuqaUzX58bORmtr TpkmwLsbT33EgUuIGuG3nCiFwccbBBojUMyzU1PRF5yUuthgsYFAGPGXDUkOHthssaDT8u /ma5mmU5/Ct7zvieFaYERo0V8fR3UbthqtuxYgd7ZNdOqjEAJeroopZPy6oYmg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110008; a=rsa-sha256; cv=none; b=MO5oEbiAhhyS+mCDtNbhEGhSyV3xrl871rJT1EgBjqVYBnlE0sMXYE67MibbXAr6VkUj7t T3fMFxNT8gSh2HPe2HfOcpV3NjKTMTh72mJVjhQNCpxqqJZE6Q/3HFGFmPEo0EqsOi+kHC +VG4aoVvtnA+C7h2IF8Qzhtb2v93rj8dx4dxr/lYev7gfa72FLNqp6Z48pbSW9vKxd3v9K R0UrIW2j7g4hgXlPen5ZNRjWo6DHgTSV42E5R+ds2x98S0njYpSh7JtMz7ZQWA6YbAEUaJ EJ6IPKAOWQb5G2L74ohkiQiwI8kfGhQ2KZ4Qf77b5BEq65bUg5PAaGJgiTqrvw== 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=1776110008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Bd7GrozHq5xkGkWO6/uKvGSpIK5JGpmU1oDlrl3G7DE=; b=uALZ2dHSRd1Q0bdLdCqishlqS7BNkiWYMz2AzJngD1y//etFiinuEWZNXV4Sn1y9kqFUpi KzFfJ8UtYdtqU2iaDTgetGv5nfNs8RpJ7ef32Y0fgH1il5ABB0CvvNJTotj/DzZOfv8W90 uSFErDGa9rLfIRGXHNJA5fA5FffV2tqhB5ZGVCpz2K1cZ/5jXINIuqBW1mFXyTINU8oQ8K cVLrZYMvUG7nqRGRfHVnVLBbd+xFrWz36gB8O7E2DZuyt8z1Tk54l3TzHeZ7VkXpFvTfpG aubdIQ7RMCDorkjPMYDT0tPiuup00Cc+9WWOaQkJZmspWXJo771P6N8UPzy9bQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdPh2Lpxz3dG for ; Mon, 13 Apr 2026 19:53:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4270d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:53:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Artem Bunichev From: Alexander Ziaee Subject: git: b1bc748430b5 - main - timeout.1: Document non-POSIX options 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b1bc748430b5ee79ae103c464dbf5ebc8802f782 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:53:28 +0000 Message-Id: <69dd49b8.4270d.7caf13b4@gitrepo.freebsd.org> The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=b1bc748430b5ee79ae103c464dbf5ebc8802f782 commit b1bc748430b5ee79ae103c464dbf5ebc8802f782 Author: Artem Bunichev AuthorDate: 2026-04-13 01:15:41 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:52:21 +0000 timeout.1: Document non-POSIX options MFC after: 3 days Reviewed by: Aaron Li , ziaee Differential Revision: https://reviews.freebsd.org/D56090 --- bin/timeout/timeout.1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/timeout/timeout.1 b/bin/timeout/timeout.1 index 0a9754a2cc4e..46a5a986cbce 100644 --- a/bin/timeout/timeout.1 +++ b/bin/timeout/timeout.1 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 3, 2025 +.Dd April 11, 2026 .Dt TIMEOUT 1 .Os .Sh NAME @@ -269,6 +269,10 @@ The utility is expected to conform to the .St -p1003.1-2024 specification. +.Pp +The +.Fl v +option and long option names are extensions to that specification. .Sh HISTORY The .Nm From nobody Mon Apr 13 19:53:29 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 4fvdPj4nZ6z6Zd48 for ; Mon, 13 Apr 2026 19:53:29 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdPj3cjLz3mDd for ; Mon, 13 Apr 2026 19:53:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110009; 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=Ecoo20W0BDiowV7GMLUrP1szDo27FS3H8YANGgq9oI4=; b=o8ZuUyyy4/WNBzYwLgHdKHzmlPfLmau9C320JdpRGV5Aix/eMkL5vxT+EU0wFF1g1mwL2t NKLyiJm5LoHIb1KNEctRG6ojC3UV1qlpjQPb+/Sb74v8AbAZi5x40MW3ha5z+oqCNL0nyc JL31TaFwfO3Q02QClA6e9FjDwNqx70njmsdo9w9rcE/YKSRdcEIswgsX/gfgd4E3DVov9m zyVPucsVpX2nLbTdX9+sbukPy+4YQPwfINj4+XKiohfpqv92vSpBmtRbwBNQF0PY797l9S sFBrXstWwXDRjNhFjOpFxWdkuXLENp1TIELgaHva3q37038Y0lTYASclSsZrvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110009; a=rsa-sha256; cv=none; b=KtNAi556KJHjCiMaQgFM2HhbIEjCcSOy22a3SWiOMqcYkLuGT35XHuxG0ibA+TH4p9GX+k f4x6kA3CFW3raFyFxBGAjcdxuboQrnA+goNl0x5YEfyGFofLkeCL1k+8XQBuWjLWJnbyAA 7JKDvaPd5KbGhSFtGHc1IuiUMI+0+SpyHPnlrNKl4fhJTf2hZbNW96Jr/+8iJYG6jqM+z1 5/Wan8D1NiUNkAu/6sYmomRq6ivTMYAUCTbJRebOZk30VmnGhchCmPybWd4j17MBaAKRzl Pugi8oj71PeTfUkvaOuVUtTxCVWJGrvDURCechq51Bf4OcHJnUEznlZE7yOmbA== 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=1776110009; 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=Ecoo20W0BDiowV7GMLUrP1szDo27FS3H8YANGgq9oI4=; b=GctrxKGvNHZzPuJUbuF2VJrRQ75r7UbVMJ0xNEhW6huWatj+A+wEdpR7Jbof7tckn0WQGO 4r3EYg9DNL2d30Z2oRtUxscUKXfMfn2FoQFa9jVC11bQF4EtNAkwVjgSqbOFBFYp7I+FVl uRGcQmHUARCHZs4Ll6m+wslTbWKKkjWKA6vKyD3cmn889OOMrLy6hqcF8qnp4sep7+iXep G4BX/MS2GJhLiOAw6tZJYBeQvAxsdmnQr21lXiq2sKjs6pxRW/w7q2JmT1uax6X6VzoZBA iPD9qyQUqFgkDgeNiHLwaHhXMUASa22mivIAGUaUs/KbqWLY8NLHJcLVrizjoQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdPj37Dcz2vY for ; Mon, 13 Apr 2026 19:53:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40a5c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:53:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Alexander Ziaee Subject: git: afe57c12e97d - main - diskinfo: Align and alphabetize options 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: afe57c12e97d5c8773d829c2914f35462a7cdd0c Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:53:29 +0000 Message-Id: <69dd49b9.40a5c.7872d0e3@gitrepo.freebsd.org> The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=afe57c12e97d5c8773d829c2914f35462a7cdd0c commit afe57c12e97d5c8773d829c2914f35462a7cdd0c Author: Alexander Ziaee AuthorDate: 2026-04-13 01:59:33 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:52:24 +0000 diskinfo: Align and alphabetize options MFC after: 3 days --- usr.sbin/diskinfo/diskinfo.8 | 12 ++++++------ usr.sbin/diskinfo/diskinfo.c | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/usr.sbin/diskinfo/diskinfo.8 b/usr.sbin/diskinfo/diskinfo.8 index 970bafd4f8e5..aea4c123048a 100644 --- a/usr.sbin/diskinfo/diskinfo.8 +++ b/usr.sbin/diskinfo/diskinfo.8 @@ -35,7 +35,7 @@ .Nd get information about disk device .Sh SYNOPSIS .Nm -.Op Fl citSvw +.Op Fl ciStvw .Ar disk ... .Nm .Op Fl l @@ -52,9 +52,7 @@ utility prints out information about a disk device, and optionally runs a naive performance test on the device. .Pp The following options are available: -.Bl -tag -width ".Fl v" -.It Fl v -Print fields one per line with a descriptive comment. +.Bl -tag -width "-c" .It Fl c Perform a simple measurement of the I/O read command overhead. .It Fl i @@ -70,16 +68,18 @@ character as a separator. Return the physical path of the disk. This is a string that identifies the physical path to the disk in the storage enclosure. -.It Fl s -Return the disk ident, usually the serial number. .It Fl S Perform synchronous random write test (ZFS SLOG test), measuring time required to write data blocks of different size and flush disk cache. Blocks of more then 128KB are written with multiple parallel operations. +.It Fl s +Return the disk ident, usually the serial number. .It Fl t Perform a simple and rather naive benchmark of the disks seek and transfer performance. +.It Fl v +Print fields one per line with a descriptive comment. .It Fl w Allow disruptive write tests. .El diff --git a/usr.sbin/diskinfo/diskinfo.c b/usr.sbin/diskinfo/diskinfo.c index f091d0ccfbea..d8a79d430edb 100644 --- a/usr.sbin/diskinfo/diskinfo.c +++ b/usr.sbin/diskinfo/diskinfo.c @@ -58,7 +58,7 @@ static void usage(void) { - fprintf(stderr, "usage: diskinfo [-ciStvw] disk ...\n" + fprintf(stderr, "usage: diskinfo [-citSvw] disk ...\n" " diskinfo [-l] -p disk ...\n" " diskinfo [-l] -s disk ...\n" ); @@ -91,7 +91,7 @@ main(int argc, char **argv) u_int sectorsize, fwsectors, fwheads, zoned = 0, isreg; uint32_t zone_mode; - while ((ch = getopt(argc, argv, "cilpsStvw")) != -1) { + while ((ch = getopt(argc, argv, "cilpSstvw")) != -1) { switch (ch) { case 'c': opt_c = 1; @@ -107,13 +107,13 @@ main(int argc, char **argv) case 'p': opt_p = 1; break; - case 's': - opt_s = 1; - break; case 'S': opt_S = 1; opt_v = 1; break; + case 's': + opt_s = 1; + break; case 't': opt_t = 1; opt_v = 1; From nobody Mon Apr 13 19:54:50 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 4fvdRH152Tz6ZdG7 for ; Mon, 13 Apr 2026 19:54:51 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdRG4plZz3n8K for ; Mon, 13 Apr 2026 19:54:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fv1Zc2ttNVQiGwnLyUDSDwGPzl3/ZjpUUA23vpefWv0=; b=A1DEYoWNLkmMk9GkU7txW3Tv0NnbbqGe0PAs2hRf/N0is7rwtqdlGcDmA8fz2rFIwvLLXr GdTkOwArrqYtlECPz8zakF6cDeb4KdOOQRWOsShNZLsAWoccCHzdY7Ui2R72p7QYNfnLOS +WpYWyJWm4I79znDfusn+LsUvQ9DhFr5nXePq/wa5EWyJZPc+W08zDICPnSPIKWXAKjDMA Tgp1ztgm7D8ONqc5odwfG65VnRu6gH25Bukly9PFe2MX++1M7JkScX3y+WtcbQ1kBUmd2l XENTkNOjrgIOEEF922kJBnAfhT3r8A9RaZOWVOULHh4TcIgRBT6bBZri2vTstQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110090; a=rsa-sha256; cv=none; b=Ikv4Bo8TBOouGqDbYMftlWbS1aYDqnZ/RXS0dUxVN03/AlLAPJQ6GvJ8AIeouGfa7rDUAl viTueoE9mAwlPbeW1d0V8HWmbwFy9T1u98sZmFf0M3GFT0HWf4fkBG2l9I0YZ2eArVUiFc jZqxbKrJzw3gaGpIbwueBNfMJYWIVWUjXXYaECNtbWMPMYr6ReAAroC7v2lc4A1WZc8EFN BdK3Cw+wVlCUDQgCbSyHqBvcDzNZpaiNSLBEKsOlZX6oYxJUCPDWgHoJLElMu1uwZv1BDy OTWtYe1hyjqUNbACwlOHlKXoYqzMr8WLAPpyezHfX2K18lVZsei5d0Z+EYUK6A== 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=1776110090; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fv1Zc2ttNVQiGwnLyUDSDwGPzl3/ZjpUUA23vpefWv0=; b=l4E1nlh90T6aehIFYb3FmHQP2R3b5gYQLewa80wO/O2YXpRfutr2clbZux/G6XseDFV5QY Om1BOjC68BmRsbsQRx3b0eAgEoviHK2GXFDLmq7V2mCwW0K4MxmpBB6J7L3HVn2+6q/SJ0 necI+M9dXcN7DST4VdDHNLoI5OciLYpIoz0j9PpJcDpepoDZQe9HFcO4/7vvdVf5gC/bUT 8FKr5RRRkxGSanhPwwbnCbVFTotH9JDVw3cST6E/75Zib8VMNQ41spsfSaCrWk3CYHar71 ZciB6AoWHdooYFkTQsE+rrPJT/iVrbcu2KivJlPuplloFP4XwttR+jVegH73Vg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdRG3zbpz3Zh for ; Mon, 13 Apr 2026 19:54:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41b2d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:54:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: 4d6fb9d57b8a - stable/15 - nvme: Removed unused 'regs' variable 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4d6fb9d57b8aa77b0e5b9650540f3a01d4ef7972 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:54:50 +0000 Message-Id: <69dd4a0a.41b2d.11136efb@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=4d6fb9d57b8aa77b0e5b9650540f3a01d4ef7972 commit 4d6fb9d57b8aa77b0e5b9650540f3a01d4ef7972 Author: Matt Delco AuthorDate: 2026-03-10 19:30:51 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:54:16 +0000 nvme: Removed unused 'regs' variable The private struct has a 'regs' member that's only written to and otherwise unused. This change removes it. Fixes: b3d9e5013f3e5 (Don't active memory space) Requested by: jhb Reviewed by: imp, jhb, jrtc27 Differential Revision: https://reviews.freebsd.org/D55817 (cherry picked from commit 4e3beef84628ce6dfea7f053cddf3289fddf7794) --- sys/dev/nvme/nvme_ahci.c | 1 - sys/dev/nvme/nvme_pci.c | 1 - sys/dev/nvme/nvme_private.h | 2 -- 3 files changed, 4 deletions(-) diff --git a/sys/dev/nvme/nvme_ahci.c b/sys/dev/nvme/nvme_ahci.c index b06661226d34..dd005dd868de 100644 --- a/sys/dev/nvme/nvme_ahci.c +++ b/sys/dev/nvme/nvme_ahci.c @@ -79,7 +79,6 @@ nvme_ahci_attach(device_t dev) } ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); - ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; /* Allocate and setup IRQ */ ctrlr->rid = 0; diff --git a/sys/dev/nvme/nvme_pci.c b/sys/dev/nvme/nvme_pci.c index 8e5e64e1f0e0..f2b9465294f6 100644 --- a/sys/dev/nvme/nvme_pci.c +++ b/sys/dev/nvme/nvme_pci.c @@ -225,7 +225,6 @@ nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); - ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; return (0); } diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index 8b5737dfb72b..9cfe9c32b360 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -286,8 +286,6 @@ struct nvme_controller { struct nvme_qpair adminq; struct nvme_qpair *ioq; - struct nvme_registers *regs; - struct nvme_controller_data cdata; struct nvme_namespace ns[NVME_MAX_NAMESPACES]; From nobody Mon Apr 13 19:54:51 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 4fvdRJ0wPvz6ZdCq for ; Mon, 13 Apr 2026 19:54:52 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdRH5Hx5z3n3s for ; Mon, 13 Apr 2026 19:54:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IpIomQos7jTnl3xHA8YFcJW5iKePsVzMtalkscCHLLg=; b=ZEEPV/OD0jPNGQYAWdV639yFmgYM/5LbuIsN6dA+17UC6bKZkR1wByZEgh8ntZIXBA+nHV eZ+5bWtW0NNaX5zOecd6yBoLE2aXISOH3TDvXsiiemZdAkDCkX7sLQ76ijw7drKR0jtBx6 BnPjmtkQjktQp+TxFjLB/d90SqMsiE0OXouSXpUj4pFxv2XEzwwpjr05Kks5/WWAj9LsYF Jwx03M897zyisOEWvdHQY5Hh81l7YWuVRI9CRukzh1Hw7o4Mbo4hGhVbPWKBO8Mlr9cHWx SlLFLQQ5RW1vudIg6Kg9RqrUeG8TKMZPuUyhjFfKxpxkDmJSkfUrj14jyi4msw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110091; a=rsa-sha256; cv=none; b=kWzwmj0MptZ1UXGUCaGdSsdCrwKr3KMDfMAxBFBDuLd6610pqgOculy3Z+gFNhfU1VMZ5B tMICCGkhlwCk/0c5rbFRX3Tg3Az5XbSudaQ9TrdZtDrQakTX0+uhXo5GWAlqIB2DPSDntY G31wVggXNpEVwLBbL9wuoRnrH6UC10Jl+se49qzjyW7ORauclLS7UyE5QmpnxxkLBbQAVz aSKd+tmzHxg3GvFMiKx3NZ3VwRWIbgCXDrK5Ly7MkU/Jnpfo7i4KNB5iTwx2j7DXv9CJgX TfykFmwShJ1zXBi/wTzMYjcIlCtpWI0BAlzUWr5jbPNI8RHjwVfg6K+G8z7J2A== 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=1776110091; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=IpIomQos7jTnl3xHA8YFcJW5iKePsVzMtalkscCHLLg=; b=cZOAXaTDMP7UHCgLRTHNSXwcyuzQguMsHnGB+j4HphayKm/cpDPpzpHymjOuMDGn+yzyr8 fYid49Gz5Qo2fvxMGQmH16QcPRTmP9vUz2FSwsa/yqcecEqANBBOZYb/WZeGUlXy66aBKh DqU8sn7RNSTUVeyvGwmzJHgMkgs+BhFXNDS81Jo5M5ZeOTTMYZUZSgWBp7gKTcAFZwnhlc OiFp6KIWVYCOC7AcEF5JBQ3FC3nUvJt5gys7oG9uVC97Znc58JvZAwGKBt166VXac7K5bI FsiRozkO+ZfGLJdNJv8lSTLMKb618Av5GAPzKwwiM8sLeB5nf9QjlRe8mgSgvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdRH4r10z377 for ; Mon, 13 Apr 2026 19:54:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41ed9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:54:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: b8429aca4cf7 - stable/15 - nvme: Replace bus_space_[read|write]_4 with bus_[read|write]_4 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b8429aca4cf7fae6b88e3bc1aa7309c8b79557c5 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:54:51 +0000 Message-Id: <69dd4a0b.41ed9.a703c36@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=b8429aca4cf7fae6b88e3bc1aa7309c8b79557c5 commit b8429aca4cf7fae6b88e3bc1aa7309c8b79557c5 Author: Matt Delco AuthorDate: 2026-03-10 20:12:56 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:54:16 +0000 nvme: Replace bus_space_[read|write]_4 with bus_[read|write]_4 The goal this change is to remove the use of the tag and handle needed by bus_space_[read|write]_4. Fixes: b3d9e5013f3e5 (Don't active memory space) Requested by: jhb Reviewed by: gallatin, imp, jhb, jrtc27 Differential Revision: https://reviews.freebsd.org/D55818 (cherry picked from commit 889d10d5b12050b4b3923917b5edeac85e8ca706) --- sys/dev/nvme/nvme_ahci.c | 2 -- sys/dev/nvme/nvme_pci.c | 3 --- sys/dev/nvme/nvme_private.h | 17 ++++++----------- sys/dev/nvme/nvme_qpair.c | 7 +++---- 4 files changed, 9 insertions(+), 20 deletions(-) diff --git a/sys/dev/nvme/nvme_ahci.c b/sys/dev/nvme/nvme_ahci.c index dd005dd868de..f85826db43b9 100644 --- a/sys/dev/nvme/nvme_ahci.c +++ b/sys/dev/nvme/nvme_ahci.c @@ -77,8 +77,6 @@ nvme_ahci_attach(device_t dev) ret = ENOMEM; goto bad; } - ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); - ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); /* Allocate and setup IRQ */ ctrlr->rid = 0; diff --git a/sys/dev/nvme/nvme_pci.c b/sys/dev/nvme/nvme_pci.c index f2b9465294f6..143adfda7322 100644 --- a/sys/dev/nvme/nvme_pci.c +++ b/sys/dev/nvme/nvme_pci.c @@ -223,9 +223,6 @@ nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) } } - ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); - ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); - return (0); } diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index 9cfe9c32b360..d499c6f34ca8 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -225,8 +225,6 @@ struct nvme_controller { #define QUIRK_INTEL_ALIGNMENT 4 /* Pre NVMe 1.3 performance alignment */ #define QUIRK_AHCI 8 /* Attached via AHCI redirect */ - bus_space_tag_t bus_tag; - bus_space_handle_t bus_handle; int resource_id; struct resource *resource; @@ -331,20 +329,17 @@ struct nvme_controller { offsetof(struct nvme_registers, reg) #define nvme_mmio_read_4(sc, reg) \ - bus_space_read_4((sc)->bus_tag, (sc)->bus_handle, \ - nvme_mmio_offsetof(reg)) + bus_read_4((sc)->resource, nvme_mmio_offsetof(reg)) #define nvme_mmio_write_4(sc, reg, val) \ - bus_space_write_4((sc)->bus_tag, (sc)->bus_handle, \ - nvme_mmio_offsetof(reg), val) + bus_write_4((sc)->resource, nvme_mmio_offsetof(reg), val) #define nvme_mmio_write_8(sc, reg, val) \ do { \ - bus_space_write_4((sc)->bus_tag, (sc)->bus_handle, \ - nvme_mmio_offsetof(reg), val & 0xFFFFFFFF); \ - bus_space_write_4((sc)->bus_tag, (sc)->bus_handle, \ - nvme_mmio_offsetof(reg)+4, \ - (val & 0xFFFFFFFF00000000ULL) >> 32); \ + bus_write_4((sc)->resource, nvme_mmio_offsetof(reg), \ + (val) & 0xFFFFFFFF); \ + bus_write_4((sc)->resource, nvme_mmio_offsetof(reg) + 4, \ + ((val) & 0xFFFFFFFF00000000ULL) >> 32); \ } while (0); #define nvme_printf(ctrlr, fmt, args...) \ diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c index f7dc231d74df..e31bf818ed35 100644 --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -476,8 +476,8 @@ _nvme_qpair_process_completions(struct nvme_qpair *qpair) } if (done) { - bus_space_write_4(qpair->ctrlr->bus_tag, qpair->ctrlr->bus_handle, - qpair->cq_hdbl_off, qpair->cq_head); + bus_write_4(qpair->ctrlr->resource, qpair->cq_hdbl_off, + qpair->cq_head); } return (done); @@ -1068,8 +1068,7 @@ nvme_qpair_submit_tracker(struct nvme_qpair *qpair, struct nvme_tracker *tr) bus_dmamap_sync(qpair->dma_tag, qpair->queuemem_map, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); - bus_space_write_4(ctrlr->bus_tag, ctrlr->bus_handle, - qpair->sq_tdbl_off, qpair->sq_tail); + bus_write_4(ctrlr->resource, qpair->sq_tdbl_off, qpair->sq_tail); qpair->num_cmds++; } From nobody Mon Apr 13 19:54:52 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 4fvdRK0mXTz6ZdB3 for ; Mon, 13 Apr 2026 19:54:53 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdRJ6MSQz3nDp for ; Mon, 13 Apr 2026 19:54:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110092; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZfOYi/P1vuuK4A0OvUSharopxbP63rnqrUSn42imH10=; b=eXmDeChLzw+sGIFgzQ1WDEdwPV23HueLRhecYnrJfK8OBMak7neYfMHLViNcy5htEaizWN SJx9vJin8WF2FcqvTljx+wyFAr9D2lgZtyVYW7qgMr0/+9qLtqoQ4yzuiiGCuTfmCZT5C2 uqf3gZUm2rYhiddKIH2nZXaXlFVAdjzHSlTD826PerNDgV/eCsCyhGKe181cbEoiLZFSoQ T1zBVA9n/dwfGY8SO6X0fAeRCxMZpNtEJ3/yBZWbsn5W4ulSPR/tWzon/69viYjJ3WReWs D6kGjS8tDfUrtSoipV3DgasPst751P6gjCtR3IMeunUzgA9CVL+VCp4PVek3wA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110092; a=rsa-sha256; cv=none; b=u9sENVMzIQRNcJONKE5xg2kiZQv8wKdTffk98bC/3H6IbVh1ElAxDvZF+jAoDPEbekSzJZ 6O51+MNgxhNQComwApVmrWNOR2X9MbjJVLB5r0tFPUcsW4grAvqWGKNmS4c8sQuMCb/FDi TA1ok4BlZlFDAs7bm+2L5xGVI/b6b//MSxQnPLJWTuiYAColnfWoY447fuWxvwBa0QQwWR LczE3K3vjlOgxI/4h+xaKtIxNfzrCDrT8hS1zs+zAKSKoGy79nyVpHcnbxP4mA/10o+SkO VMiEmapRKNNKFRbUErVF5LNClJWEyBrNYhddXHmh3oZq7pzVfxI4hg2gdbjUdg== 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=1776110092; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZfOYi/P1vuuK4A0OvUSharopxbP63rnqrUSn42imH10=; b=piIhEWytxXAgZHIWn6xCO6pm8ll6WdSxCPCuaSnwMYvD9goBka6x97GKVCgk4IePycCl3m RwIkkBNj0Fj2XerS0VMZXhnZpv65ypcrH8IXXEbUYUpUuXRXnW9MiITYiYgjEn7ZrXiU8T lSERcKVa0fIv4injEpjrPaP4HsPCTJaKIdFrz3kqwq4QvxqtvYPJ3I+ECH3pb/ZrI22O+O i25NxZIM01mWZ5wDTIsbxwE7BNMbOfPgy5G2xRCow4z/4l2nrG8hd3IJEkqswpi24n3Lxj 4v3DG2GCbG+sFtys3X/8hkAjh2bH+2BlrgXqKMXLM9wqKZAp7+DujtQKVn/y9A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdRJ5fN5z3Zj for ; Mon, 13 Apr 2026 19:54:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 418ff by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:54:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: 296debec8856 - stable/15 - x86: Guard clock frequency against a divide by 0 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 296debec88562255349328e6b501d2687febc950 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:54:52 +0000 Message-Id: <69dd4a0c.418ff.2a004b63@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=296debec88562255349328e6b501d2687febc950 commit 296debec88562255349328e6b501d2687febc950 Author: Matt Delco AuthorDate: 2026-03-26 17:22:54 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:54:16 +0000 x86: Guard clock frequency against a divide by 0 We may be running in a Virtual Machine which may not fully support hardware performance counters. If the MPERF counter somehow ends up at zero, return an error and fail gracefully instead of panicking. This patch is part of Google Cloud Engine (GCE) C4-LSSD turnup. Sponsored by: Google Tested by: NetApp (previous) PR: 292808 MFC after: 3 days Co-authored-by: Aymeric Wibo Co-authored-by: Jim Mattson Suggested by: jrtc27 (split out this part) Reviewed by: imp, obiwac, olce Differential Revision: https://reviews.freebsd.org/D56056 (cherry picked from commit c505fc1468849150f48484b225b6476d8316de57) --- sys/x86/x86/cpu_machdep.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 5483fbd6dd4e..775fee97d3cd 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -425,6 +425,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) uint64_t tsc1, tsc2; uint64_t acnt, mcnt, perf; register_t reg; + int error = 0; if (pcpu_find(cpu_id) == NULL || rate == NULL) return (EINVAL); @@ -460,6 +461,11 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) acnt = rdmsr(MSR_APERF); tsc2 = rdtsc(); intr_restore(reg); + if (mcnt == 0) { + tsc_perf_stat = 0; + error = EOPNOTSUPP; + goto err; + } perf = 1000 * acnt / mcnt; *rate = (tsc2 - tsc1) * perf; } else { @@ -470,6 +476,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) *rate = (tsc2 - tsc1) * 1000; } +err: #ifdef SMP if (smp_cpus > 1) { thread_lock(curthread); @@ -478,7 +485,7 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) } #endif - return (0); + return (error); } /* From nobody Mon Apr 13 19:54:53 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 4fvdRL26bzz6ZdB6 for ; Mon, 13 Apr 2026 19:54:54 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdRK6vKqz3n6m for ; Mon, 13 Apr 2026 19:54:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EvqRckNRudgZaSNf8G+URjcW2nDQL4qutndL0AjvBpQ=; b=LuHZvvQpTTIrbRMQufmuIH3zQq35NkdmzdY0O2k3XhL6ivbYHhq/bfG+iEASWS2WW8Hhne 4V62zBNwqmM1zRm2AVQbmvZyz1ngWUIhj4/EyK0UjZh4I09nMrwK4nZCWw9O+NZWujS/0s bA/cVRbTd6R1z4/5Cw5JvJ5V/K9Stuu15ayzpMPxszasfzF1iIBsHq26BRlJNyLJSw2TTG YVF5f90G1V1FHw6majbbzLJMM+0hNomLReC28twDE2Uw+bmNUe6zbOEgm4RuJ/Tn5bJtTt uvO+F8P2a5B0n3H/j77Log+2wRraIn9gbS9n0r6nMT2lzEYBr0bePqO09O3P7g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110094; a=rsa-sha256; cv=none; b=W0tC8QDtDneUZFDTZpMU3DuIuZjX1FL5Fkpuagy1Ltx5+dL8/jhvWBSvvNGDyE8v1k2WjH lCvJvGKNZ59WhVLSezW/nTxKcJ/q4xHD6vqOotQUFRNtSnEoGSR89ww+o4ZNgfrIjsgAVy FqHiIY+7IUc+afJamhfNGjPA6NaxpnCZ9RGWHXfwsrAnCP7N/jx1lLuIMtJzHahifFNKBW AKT7Zm7NWr4PG4iI5FxuBWRZNBdhAUxLKgca8Jm+0qG++PD/hcX3MmKN+dyCKBo/2cxER8 efqWrXHSCijsrs/0GxDq7Z8nDzCc3nbldLRWxbNUxafGJ+lmE7U5ki+OTif7Ew== 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=1776110094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EvqRckNRudgZaSNf8G+URjcW2nDQL4qutndL0AjvBpQ=; b=ob1eBWzuqauIKbhuBvcVvu8aAbXGhpX/hxV8B0emObR435Cfy/J5mcQ3Ol34/2v6FkgVB6 MuJko4lx0kd/JS0KGVTXBRiGfvq0CaoUEVrD5heegB3hXRdvuON0wtcPIt5BRz+qlrMOWD EgTJA8djsYCv4qN4gTldGpNHJXgh3Gx8ZHF4KKeSSb5zbFRArIpDwCNeQoinPQLKFeJ3k6 Dutm3F3+Okh4u8CJWqBxfaYN4m3nOgH2NnYhHoQcI3cf/y0e0ypt9i0ACDixkzvEY21ico jeHy4wwsWHQ3c+nGR9Nc9/tf5bvg0cP+siyFZhb0z4pwLpu/VAm4fJCxR9ovYQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdRK6GTsz3Zl for ; Mon, 13 Apr 2026 19:54:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42527 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:54:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: 1b8723defccc - stable/15 - x86: Handle when MPERF/APERF MSRs aren't writable 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1b8723defcccade771864aad4cbc0eaa372366ed Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:54:53 +0000 Message-Id: <69dd4a0d.42527.4a2b2f17@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=1b8723defcccade771864aad4cbc0eaa372366ed commit 1b8723defcccade771864aad4cbc0eaa372366ed Author: Matt Delco AuthorDate: 2026-03-26 17:30:31 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:54:16 +0000 x86: Handle when MPERF/APERF MSRs aren't writable For performance and/or correct reasons some hypervisors allow MPERF/APERF MSRs to be read but not written to. This change modifies the handling of these MSRs to not rely on writes. This patch is part of Google Cloud Engine (GCE) C4-LSSD turnup. Sponsored by: Google Tested by: NetApp (previous) PR: 292808 MFC after: 3 days Co-authored-by: Jim Mattson Reviewed by: jrtc27, imp, kib, markj, olce, obiwac Differential Revision: https://reviews.freebsd.org/D55996 (cherry picked from commit 7e7d4e711ff94d114c93fd522d4125aa9bd9f5cd) --- sys/x86/x86/cpu_machdep.c | 14 +++++++------- sys/x86/x86/tsc.c | 9 ++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 775fee97d3cd..422bdf9cfb0d 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -423,7 +423,7 @@ int cpu_est_clockrate(int cpu_id, uint64_t *rate) { uint64_t tsc1, tsc2; - uint64_t acnt, mcnt, perf; + uint64_t acnt_start, acnt_end, mcnt_start, mcnt_end, perf; register_t reg; int error = 0; @@ -453,20 +453,20 @@ cpu_est_clockrate(int cpu_id, uint64_t *rate) /* Calibrate by measuring a short delay. */ reg = intr_disable(); if (tsc_is_invariant) { - wrmsr(MSR_MPERF, 0); - wrmsr(MSR_APERF, 0); + mcnt_start = rdmsr(MSR_MPERF); + acnt_start = rdmsr(MSR_APERF); tsc1 = rdtsc(); DELAY(1000); - mcnt = rdmsr(MSR_MPERF); - acnt = rdmsr(MSR_APERF); + mcnt_end = rdmsr(MSR_MPERF); + acnt_end = rdmsr(MSR_APERF); tsc2 = rdtsc(); intr_restore(reg); - if (mcnt == 0) { + if (mcnt_end == mcnt_start) { tsc_perf_stat = 0; error = EOPNOTSUPP; goto err; } - perf = 1000 * acnt / mcnt; + perf = 1000 * (acnt_end - acnt_start) / (mcnt_end - mcnt_start); *rate = (tsc2 - tsc1) * perf; } else { tsc1 = rdtsc(); diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c index 3b873d9dae73..f88ce60c6319 100644 --- a/sys/x86/x86/tsc.c +++ b/sys/x86/x86/tsc.c @@ -433,6 +433,8 @@ probe_tsc_freq_late(void) void start_TSC(void) { + uint64_t mperf, aperf; + if ((cpu_feature & CPUID_TSC) == 0 || tsc_disabled) return; @@ -442,11 +444,12 @@ start_TSC(void) /* * XXX Some emulators expose host CPUID without actual support * for these MSRs. We must test whether they really work. + * They may also be read-only, so test for increment. */ - wrmsr(MSR_MPERF, 0); - wrmsr(MSR_APERF, 0); + mperf = rdmsr(MSR_MPERF); + aperf = rdmsr(MSR_APERF); DELAY(10); - if (rdmsr(MSR_MPERF) > 0 && rdmsr(MSR_APERF) > 0) + if (rdmsr(MSR_MPERF) != mperf && rdmsr(MSR_APERF) != aperf) tsc_perf_stat = 1; } From nobody Mon Apr 13 19:54:49 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 4fvdRM0qzSz6ZdBB for ; Mon, 13 Apr 2026 19:54:55 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdRL5JGRz3nDy for ; Mon, 13 Apr 2026 19:54:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fNrvrZ8xNVhwd1TWsua2Tyx8kDTZoPVRucs6/QX1L68=; b=GLhqTL4PKltI51y1d0UGZnVgE9pbfFsZCRiagqgWFFPowGEgesyNHMkXLCnZruzBo4l0P4 W7xd0CwPfmPdSUb/wH7Op3dACxZrVAAC9jX2ajpA7oixSV1fu1Lpdx50tnOC5DkrSzN4lP yYbymeJZkp+yNrJI5joQrjmJGgl7d1e5cCPkgQ/atfHVZM0fsjBV7ydbJp8QkptV7SMMmP I+ksqmKFFAxP8cAltDsQDv7b91rlfOTIiwEfmntMh5I7hESFK6uRrrkpHZQJQu1SU2Z6Sa 34jKtOJF8iGIQww+nPnHX8ZrkkxCx4ePYKDUXnMuCeWp1smkoQpMhqKnwje9EQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110094; a=rsa-sha256; cv=none; b=Q3r4Syyetr80J1U7f7k2xwxxRXDG+b0s/UXqajVvclVGEeC5dXOowZfP0B5gaPTe4VMVye bmjfz+ekhGJmtzuIsHGV4oCTh39JEF3r4fNVhQvmULKs3aRrjx0raMHVHtu6WxaWe0wvze W5HeBmCvU+N2Mn3UzW4ijgtXm4CJiRXO08Q0ukJnH/wS9YOZ70Cni0wkvATHS3XweBT/Wh 2s4jzizBCFO+p3rLLHLITlR7NB894LDDxWlylqX7YxV3gJGwBlhnIECkDm/eAdBLFOb5UD QOmTD7+11Boz3ydCPM2bKXol9VO/vUpjw89MekrpARNl+G5RbJtOzilRgf7JvQ== 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=1776110094; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fNrvrZ8xNVhwd1TWsua2Tyx8kDTZoPVRucs6/QX1L68=; b=xeMcl2Ow+mhyGdclmWCX1CeqDeWPbgejdsWXitLs6iJ/T7W+2FJZg813pjQxulBiO4S+e9 vXfkFIsaTEe+Md2b6g0IHmUz5fI+30Lr6idUptkHYbdW1Hfo4+vYODcaSUmzs94lFLKEnJ 1sNgQvsHBX1xJhdywrpw8/4Jgw7H70q9QqfNkB3CtEJniroN6wfnYdpPVjQPIVno32AOra 1oJLGP/CjXk2y/ktUF0CV+mksZRZ6otpM5NtdwLvjyC9w4Bc7dNEM2WdTgZ9eHLltTv9Zi zXL/kNS7uPV6kbWr2oqJBHUHiV+d0Xp8c3z3K14OUhXuS1AkW/E4eHUPp4cxGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdRL4MyRz37B for ; Mon, 13 Apr 2026 19:54:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 407fa by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:54:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Matt Delco From: Alexander Ziaee Subject: git: 925387f94432 - stable/15 - nvme: Don't active memory space until all BARs are configured 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 925387f94432ce80daf9c7ab98e856df2d13657a Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:54:49 +0000 Message-Id: <69dd4a09.407fa.ea754fd@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=925387f94432ce80daf9c7ab98e856df2d13657a commit 925387f94432ce80daf9c7ab98e856df2d13657a Author: Matt Delco AuthorDate: 2026-03-06 17:23:03 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:54:16 +0000 nvme: Don't active memory space until all BARs are configured In the current current behavior the 2nd and 3rd BARs can be activated when they're configured with address zero. This change defers the activation of all BARs until after they've all been configured with an address. This enables FreeBSD on Google Compute Engine C4-LSSD Machines. Sponsored by: Google Tested by: NetApp (previous version) Reviewed by: gallatin, imp Discussed with: jrtc27 (improved error reporting) Differential Revision: https://reviews.freebsd.org/D55541 (cherry picked from commit b3d9e5013f3e5016ffbd3d3d6091194658af2b92) --- sys/dev/nvme/nvme_pci.c | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/sys/dev/nvme/nvme_pci.c b/sys/dev/nvme/nvme_pci.c index cecb05ca0a92..8e5e64e1f0e0 100644 --- a/sys/dev/nvme/nvme_pci.c +++ b/sys/dev/nvme/nvme_pci.c @@ -151,24 +151,28 @@ nvme_pci_probe (device_t device) static int nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) { + int error; + ctrlr->resource_id = PCIR_BAR(0); ctrlr->msix_table_resource_id = -1; ctrlr->msix_table_resource = NULL; ctrlr->msix_pba_resource_id = -1; ctrlr->msix_pba_resource = NULL; + /* + * Using RF_ACTIVE will set the Memory Space bit in the PCI command register. + * The remaining BARs will get mapped in before they've been programmed with + * an address. To avoid this we'll not set this flag and instead call + * bus_activate_resource() after all the BARs have been programmed. + */ ctrlr->resource = bus_alloc_resource_any(ctrlr->dev, SYS_RES_MEMORY, - &ctrlr->resource_id, RF_ACTIVE); + &ctrlr->resource_id, 0); if (ctrlr->resource == NULL) { nvme_printf(ctrlr, "unable to allocate pci resource\n"); return (ENOMEM); } - ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); - ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); - ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; - /* * The NVMe spec allows for the MSI-X tables to be placed behind * BAR 4 and/or 5, separate from the control/doorbell registers. @@ -180,7 +184,7 @@ nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) if (ctrlr->msix_table_resource_id >= 0 && ctrlr->msix_table_resource_id != ctrlr->resource_id) { ctrlr->msix_table_resource = bus_alloc_resource_any(ctrlr->dev, - SYS_RES_MEMORY, &ctrlr->msix_table_resource_id, RF_ACTIVE); + SYS_RES_MEMORY, &ctrlr->msix_table_resource_id, 0); if (ctrlr->msix_table_resource == NULL) { nvme_printf(ctrlr, "unable to allocate msi-x table resource\n"); return (ENOMEM); @@ -190,13 +194,39 @@ nvme_ctrlr_allocate_bar(struct nvme_controller *ctrlr) ctrlr->msix_pba_resource_id != ctrlr->resource_id && ctrlr->msix_pba_resource_id != ctrlr->msix_table_resource_id) { ctrlr->msix_pba_resource = bus_alloc_resource_any(ctrlr->dev, - SYS_RES_MEMORY, &ctrlr->msix_pba_resource_id, RF_ACTIVE); + SYS_RES_MEMORY, &ctrlr->msix_pba_resource_id, 0); if (ctrlr->msix_pba_resource == NULL) { nvme_printf(ctrlr, "unable to allocate msi-x pba resource\n"); return (ENOMEM); } } + error = bus_activate_resource(ctrlr->dev, ctrlr->resource); + if (error) { + nvme_printf(ctrlr, "unable to activate pci resource: %d\n", error); + return (error); + } + if (ctrlr->msix_table_resource != NULL) { + error = bus_activate_resource(ctrlr->dev, ctrlr->msix_table_resource); + if (error) { + nvme_printf(ctrlr, "unable to activate msi-x table resource: %d\n", + error); + return (error); + } + } + if (ctrlr->msix_pba_resource != NULL) { + error = bus_activate_resource(ctrlr->dev, ctrlr->msix_pba_resource); + if (error) { + nvme_printf(ctrlr, "unable to activate msi-x pba resource: %d\n", + error); + return (error); + } + } + + ctrlr->bus_tag = rman_get_bustag(ctrlr->resource); + ctrlr->bus_handle = rman_get_bushandle(ctrlr->resource); + ctrlr->regs = (struct nvme_registers *)ctrlr->bus_handle; + return (0); } From nobody Mon Apr 13 19:55:37 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 4fvdS96Gsjz6Zd5r for ; Mon, 13 Apr 2026 19:55:37 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdS95MjFz3pXH for ; Mon, 13 Apr 2026 19:55:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110137; 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=1LYZbvWHkz3PTkVXa6jazjhACsD+LW1Ts/bdQy6VIKY=; b=mEn1HtswWzz6PA5U729cENZk7ambb5s1aXhs0pU+xfPUuzdFEQGPylQ7v0siN2FacviowX 1/DqeCzbaQA3nMfx5mLk8iNOPG58UdecD152Y/mTj+z0dHzjqlPIWydV+sBRHgyiRyantz cg3QZvNc4sG517W2wDVgIaMkESyN+gfuUIqK2VwV6KKQ6ISS1AP1KnyrczOWvlWb0/fT6k kcRVnkjXO8SqhjyiamYQP0voIoqjb5DHNz81XR0N13CWIjXbHUFy7UI9GHmUtfyL1hD+jE vNAo78Gsxdgdhqr0JbEupqxe31+G3WtNJ3JUpcF654HFVVQAtuXxRhep2H+UMg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110137; a=rsa-sha256; cv=none; b=sQzqulbL8d/CYted+3/oVehR9qNolFWnNjRLMbL4r/e2Lx+JXmWuMVLYxpk4sMS/wsjFPF fvblOsKMqmDFJl6zhdDjEm0O7blwftCoSxSoDzUWLPL0UBek7Tob4GELzxtg2/fshjwHTJ txyvp+FsACs7bAKA20Y48ykPmoHMpCtzXJUx/xzeNlROHbP+45wFeitQLAck6hX+bRoljU m08sg1/IVQZt2QNGP9S0JE9+/hDCC/zZHYtLyXsVC17hWtu55UXChWvmMuUrgyDbxDGyFz h13rcpAjVMydzgeNzA8Pr+Zg8531u+8r+OVFJesSkCaHaXsB3u+PXxHe/OqQ0g== 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=1776110137; 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=1LYZbvWHkz3PTkVXa6jazjhACsD+LW1Ts/bdQy6VIKY=; b=N2izJJHvjCiNoJSgOBww12prvxutFdTOB6Q+4v3l77k6Sra0h56HhREH60bB0BDQe3I4J2 271MRsO/MIBjb5yklLrSWRTib8bZ6OmMOJesUrljL/4WZobBZ75LaKNJyndhqiKlYZqrRE S/sSRIvojxgzv0wwAb/zlCw4FFAo22kSN57/f2UOn4azLPxK57H5hxT1MyLyWbUF5MK38F UgWpuqbSFDxF+0tle8T2vwshL7KakutoDwi+CLAtGNf0E+qtdwJUSp2KTO4TOsKK+o8Ugf DXRlYhn6h8T+W5TUtzHjrGOA3MfLduDqFy+pBN0QFuWIqYKJSzKAX8HElH7zjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdS94s6lz3dL for ; Mon, 13 Apr 2026 19:55:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 41a53 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 19:55:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 99aa0cdd9eff - stable/15 - arcmsr.4: Improve HARDWARE introductory sentence 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 99aa0cdd9eff3260a8a94d0e9aea3e3866137f4c Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 19:55:37 +0000 Message-Id: <69dd4a39.41a53.587b7f7@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=99aa0cdd9eff3260a8a94d0e9aea3e3866137f4c commit 99aa0cdd9eff3260a8a94d0e9aea3e3866137f4c Author: Alexander Ziaee AuthorDate: 2026-04-10 15:26:29 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 19:55:31 +0000 arcmsr.4: Improve HARDWARE introductory sentence MFC after: 3 days (cherry picked from commit ff32dbb1d14f05bf77e356ae68c82c048c88888f) --- share/man/man4/arcmsr.4 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/share/man/man4/arcmsr.4 b/share/man/man4/arcmsr.4 index 9356f4f23c8b..c2e7b4376ca7 100644 --- a/share/man/man4/arcmsr.4 +++ b/share/man/man4/arcmsr.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 15, 2020 +.Dd April 5, 2026 .Dt ARCMSR 4 .Os .Sh NAME @@ -66,7 +66,8 @@ Management tools for i386 and amd64 are available from Areca. .Sh HARDWARE The .Nm -driver supports the following cards: +driver supports the following +Areca PCI-X/PCIe SATA/SAS/NVMe RAID host adapters: .Pp .Bl -bullet -compact .It From nobody Mon Apr 13 20:02:59 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 4fvdcm6PtKz6ZdR9 for ; Mon, 13 Apr 2026 20:03:04 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvdcm4Nbnz3svs for ; Mon, 13 Apr 2026 20:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110584; 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=NZDJJMsGSG1Ph3WLXl3TZScEFTLbp6ZXgRF5xeCUhz8=; b=dN9yYizwIKo/AhJCe8h2BIUwp4GGK6/3e1EIiE1zedYBV/kdVJ5YVJ9nuKAn4ltbjjpkvR Q38/xRGLgCQmtL4Hl7cjhdzITzVhGPPVVP5qZ2cgon4BUBPAiHdSMTUcFw9hleNrhkGJGw pU7UMnNcb08wgAriBhRdXeotUKRAdB+plMaUXlHdxlOqDZzjtXVzHCVlcQh6aEuS4dD/Tl +N+6hXjgzDGcLO0yAGkcSnGeoMXAeOeADaxAll+SQfy+Sydt6ujfRR5gRC5q7yL++49yZt jI8U1v56ff2QOnpx/1P5/FXv/7JJDFTa34T6aU1kK90cCVf24iCkTFRB/liENw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110584; a=rsa-sha256; cv=none; b=S9pdqMCKk+2TbiSmbNfdPttbPusojCyd6xd7p+SX5iBqnSwpp5KtPrzT2LF3MZtVxYqAx7 85g6wk2uehTa5nwzi+TD1ZGSBHU3Lmm9OLcQUr3DwFyGOhNJOnHW2yjW/u0RIuIjWYxSpq WuNj1IGFggglwbfdpNsCbe/1CP/ckZIYrWAM0Td2QLyf+78pKlyhNTIwpxro47OYsc5VOt Xgi1+rXogmwtZZMJP85MbpRIKUaoN/d6mQHHGb0w7SBiW7xzQwgXV0J1q96ksYmKo4i2a1 /U/AlQxkDrEyKFDwAbUPXUabGgxJKvI8VnWh20cT287hKTKAQQ6GQhhH6mZCiQ== 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=1776110584; 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=NZDJJMsGSG1Ph3WLXl3TZScEFTLbp6ZXgRF5xeCUhz8=; b=K+dok4lbDMHDnTHJkb11sYbUsXSYqBkPCd5F/2MxVzw4QnZ2HD/ctwZpHLp9VSBO32MUyS nm8EOnHesj522z2C8D2nTYllDFFOrPZXkEzx5Tky6bllmKmCP6/SBlReddLepbf6LomQ39 L4aV8hgMuo/d7H/KZPlMKcIIDvMa7ruYjwFv0HuGXJBpd177Cd9/Dr24xY2EZ3dokwq/Br zawHhWX7/S6YYJWjemU9CV0ouOOiME30hK3KEk8G0FCoa+fWPU87xQ9HBgCNy5SYyrYUPc Uyoq4XuDbWtk5/dQ4MHotQS82yJfMtlPbSuE6WCf/jiQ3FinqBrufHlE3f7yrg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvdcm3mtvz3h8 for ; Mon, 13 Apr 2026 20:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42e48 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 20:02:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 07b00bed8312 - stable/15 - manuals: System message vs kernel message 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 07b00bed83121043ffc88889edc15aad183227ba Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 20:02:59 +0000 Message-Id: <69dd4bf3.42e48.ca13288@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=07b00bed83121043ffc88889edc15aad183227ba commit 07b00bed83121043ffc88889edc15aad183227ba Author: Alexander Ziaee AuthorDate: 2026-03-08 07:23:17 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 20:02:32 +0000 manuals: System message vs kernel message Wordsmith mentions throughout the manual of syslog and dmesg, to clearly differentiate them in an externally consisteny way, increasing operator onboarding speed and elegance. The daemon that handles general system messages, syslog, describes them as "system messages", and "messages" is the standard filename. Rewrite syslog related manual titles to align search results with this, and hier entries to align the index. Use care to maintain keywords and not add extra lines. Newsyslog trades "maintain" with "rotate" for visibility. MFC after: 3 days (resolved newsyslog.8 merge conflict) Reviewed by: markj Closes: https://github.com/freebsd/freebsd-src/pull/2067 (cherry picked from commit 04d58d529a61f3bba2c1a843bc2793923a005759) --- lib/libc/gen/syslog.3 | 4 ++-- sbin/dmesg/dmesg.8 | 6 +++--- share/man/man7/hier.7 | 6 +++--- usr.sbin/newsyslog/newsyslog.8 | 4 ++-- usr.sbin/newsyslog/newsyslog.conf.5 | 6 ++---- usr.sbin/syslogd/syslog.conf.5 | 6 ++---- 6 files changed, 14 insertions(+), 18 deletions(-) diff --git a/lib/libc/gen/syslog.3 b/lib/libc/gen/syslog.3 index 62140554f4f5..1e316c20d8d8 100644 --- a/lib/libc/gen/syslog.3 +++ b/lib/libc/gen/syslog.3 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd July 3, 2023 +.Dd March 8, 2026 .Dt SYSLOG 3 .Os .Sh NAME @@ -34,7 +34,7 @@ .Nm openlog , .Nm closelog , .Nm setlogmask -.Nd control system log +.Nd control system message log .Sh LIBRARY .Lb libc .Sh SYNOPSIS diff --git a/sbin/dmesg/dmesg.8 b/sbin/dmesg/dmesg.8 index f9b9fce82ffc..d84587b61475 100644 --- a/sbin/dmesg/dmesg.8 +++ b/sbin/dmesg/dmesg.8 @@ -25,12 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd May 7, 2022 +.Dd March 7, 2026 .Dt DMESG 8 .Os .Sh NAME .Nm dmesg -.Nd "display the system message buffer" +.Nd display the kernel message buffer .Sh SYNOPSIS .Nm .Op Fl ac @@ -38,7 +38,7 @@ .Sh DESCRIPTION The .Nm -utility displays the contents of the system message buffer. +utility displays the contents of the kernel message buffer. If the .Fl M option is not specified, the buffer is read from the currently running kernel diff --git a/share/man/man7/hier.7 b/share/man/man7/hier.7 index c438511678d4..d4b8c0019b81 100644 --- a/share/man/man7/hier.7 +++ b/share/man/man7/hier.7 @@ -327,7 +327,7 @@ Explicitly distrusted certificates; see kernel state defaults; see .Xr sysctl.conf 5 .It Pa syslog.conf -system log configuration +system message log configuration .It Pa ttys tty creation configuration; see .Xr getty 8 @@ -851,7 +851,7 @@ default log for system daemons .It Pa devd.log default log for device state change daemon .It Pa dmesg.today -system message buffer log, rotates to +kernel message buffer log, rotates to .Pa dmesg.yesterday .It Pa debug.log undiscarded debug syslog messages @@ -862,7 +862,7 @@ logs for the line printer spooler daemon; see .Xr sendmail 8 log, rotates and compresses to maillog.0.bz2 .It Pa messages -general system log; see +general system message log; see .Xr syslogd 8 .It Pa mount.today currently loaded diff --git a/usr.sbin/newsyslog/newsyslog.8 b/usr.sbin/newsyslog/newsyslog.8 index 7429e3b8eb01..fd389ccdbac0 100644 --- a/usr.sbin/newsyslog/newsyslog.8 +++ b/usr.sbin/newsyslog/newsyslog.8 @@ -14,12 +14,12 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd September 1, 2025 +.Dd March 8, 2026 .Dt NEWSYSLOG 8 .Os .Sh NAME .Nm newsyslog -.Nd maintain system log files to manageable sizes +.Nd rotate system message log files to maintain manageable sizes .Sh SYNOPSIS .Nm .Op Fl CFNPnrsv diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5 index a6c0e75b209d..be146c6d5081 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.5 +++ b/usr.sbin/newsyslog/newsyslog.conf.5 @@ -18,14 +18,12 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd February 4, 2026 +.Dd March 8, 2026 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME .Nm newsyslog.conf -.Nd -.Xr newsyslog 8 -configuration file +.Nd system message log rotator configuration file .Sh DESCRIPTION The .Nm diff --git a/usr.sbin/syslogd/syslog.conf.5 b/usr.sbin/syslogd/syslog.conf.5 index 691f2cdd7062..f641aedee3e5 100644 --- a/usr.sbin/syslogd/syslog.conf.5 +++ b/usr.sbin/syslogd/syslog.conf.5 @@ -25,14 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 10, 2020 +.Dd March 8, 2026 .Dt SYSLOG.CONF 5 .Os .Sh NAME .Nm syslog.conf -.Nd -.Xr syslogd 8 -configuration file +.Nd syslogd system message log configuration file .Sh DESCRIPTION The .Nm From nobody Mon Apr 13 20:03:45 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 4fvddY45mJz6ZdZc for ; Mon, 13 Apr 2026 20:03:45 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvddY3Llkz3tB5 for ; Mon, 13 Apr 2026 20:03:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776110625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kYcXNyU/ONYZCYZ8zirdJOMR93ujd2g2q1CmIv/hw8o=; b=tStEfwTJNnYi9S/St1bfbWYtqrHtdXbHfpE1HssSMNqN+nBYHDG2tgOa3QfW+1O+PahN+Z YEHY9+lNlPqzw24Ea5ADs74tq06cxUXwNiT0da3JD1M8jZVvclzROc5UTX0Dtn7PECt4oi jeWpsPJlPU/wXf4OPshr7AMg2wJ/zbOJ/dUyloH+lbLIU21ms2M6VcGhabvwSncXQp8iOD e03TiidlMjZLdqicIPC3LBWZXhfntqUBw381BBQKIo7kOngAg//AOn95fRX95+UBx+mqL/ z/1r7jJ6jxSOQfQhbjRhVppTjy5u/2oKuVPzuewaqVMWQ4cZJafHGABDNOh5Yg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776110625; a=rsa-sha256; cv=none; b=fe7pTw9Qn+EwV0mHSU8mGFgUDMStoy2sHt68nf88kwnN+jfatFhMXldJgnwJQvxpw0wsJv wq9hFpvw3ouIB0UIGXDvNXrfuRa+dmHXthcyOAmxJvp43mqQm87Qv6fQnz2sz7xwVz0MzV l9wpxYCaUeMT2w2fQCKgfEx47I3/XSTs8lRJTVJTEqbaHY1suvpKTj8jp5ybuhHZARXb5T +OYtGPGGdhOpaOHPVvhu4W7/890i+ELT1ahCxnFCCiE8Fzs46b5B3+NwMF/AJSb3ybelFa q6DTZXoEd7vhUXHMQPYfErRJ0vxqzz+FR9DjYZcdXYFDQ9hXabfgs6EsSVvp6A== 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=1776110625; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kYcXNyU/ONYZCYZ8zirdJOMR93ujd2g2q1CmIv/hw8o=; b=BrxYWQJpVHLnvy3pXwf49W0UKSYGikzmSU0McBbGBMqrhCpvDAlBshVR6vnQCKIpU2hjWP fhBIfbO2XKwP4OTZHmope8X5xpngchmTr+s4WTBRxGRmoBJQlwQ36ufyIrNu3MAuzp0aoK Qq1Q1smHU/9WU/r0BfIvgz8Hu4t3XafGrFLD6Gd9hWgg8AX20O8YXUwj6+60mVG/ntEbkd TyEki91xlERutZQee2jI2A7GzBLre04NQfSzRCxP0x1lshQFaD8Ka5yYtp4jpURcRD70CA 3CpAeKVEHuXgHNt3ng/xG46oMARNQluCpTXOjmxLMEsaLW2JvHp+tsTHkjgl9A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvddY2v8xz3h9 for ; Mon, 13 Apr 2026 20:03:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43448 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 20:03:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Isaac Freund From: Ed Maste Subject: git: e11eba76cfbd - main - pkgbase: only provide shlibs from /lib,/usr/lib,/usr/lib32 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: e11eba76cfbd6b439ad40faeb8ffccf4241e7034 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 20:03:45 +0000 Message-Id: <69dd4c21.43448.19c673cb@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=e11eba76cfbd6b439ad40faeb8ffccf4241e7034 commit e11eba76cfbd6b439ad40faeb8ffccf4241e7034 Author: Isaac Freund AuthorDate: 2026-01-20 14:57:11 +0000 Commit: Ed Maste CommitDate: 2026-04-13 20:03:22 +0000 pkgbase: only provide shlibs from /lib,/usr/lib,/usr/lib32 Reviewed by: bapt Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54793 --- Makefile.inc1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile.inc1 b/Makefile.inc1 index 1edab54eeea0..681ebb44fc52 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2285,6 +2285,8 @@ create-world-package-${pkgname}: .PHONY /^version/ { print $$2; next } \ ' ${WSTAGEDIR}/${pkgname}.ucl && \ ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \ + -o SHLIB_PROVIDE_PATHS_NATIVE=/lib,/usr/lib \ + ${_ALL_LIBCOMPATS:range:@i@-o SHLIB_PROVIDE_PATHS_COMPAT_${_ALL_LIBCOMPATS:[$i]}=/usr/lib${_ALL_libcompats:[$i]}@} \ -o OSVERSION="${SRCRELDATE}" \ create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \ -M ${WSTAGEDIR}/${pkgname}.ucl \ From nobody Mon Apr 13 22:32:41 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 4fvhxQ1Bh9z6WscL for ; Mon, 13 Apr 2026 22:32:42 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvhxP5QsHz3BqR for ; Mon, 13 Apr 2026 22:32:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776119561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ae7p4rONId/mYxOwZeJ358mOzV9M5m0YLpPnL3N6vtE=; b=tQ2W/B92fu8FWcdnNtP9WVufZNdSif59Mk+R7SZclvlmXzCqTrvmMXoD+PKzCHtk8comS0 tSyneRRmCAxIiXBkV0H/SATV/f4V1d+8xQrXuUQ1MnPOmkvBcRq7vNfFFSWa5i8kyW+wK6 ZcZdEVDe7cjy+8cDE6ChZCl5Iz+eVOJMbZo9ILl50V4xP3Nju2rk4MomxsBBFXPrbKbGWc iJvhIXPgJRmqyevwdO7fWEhVxoEwO/M8wpJ8eJZMSJJT1C1gcHqjG2nP/Je/wMi/uotW/R jheiFwFc5T+t99wZGOWeaqQ5FPOztIlu11+K/csdTVcb9v/jYx1DqdD7qOJ3Cw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776119561; a=rsa-sha256; cv=none; b=yCIS9vhEDB5UvfaBr676NZyxnHrYFNllQl/fwlv8oGs1kQIc7Q2ZVzmdrknJThRZILm4E0 g+v9aytRgK6bwwDbmFh2Om38wMsY9GoI2bidIVQtzWHoF2gdm8cHcB2y9L4NfVKe3pyU49 8V9UcFZJglQJcNbBztQnCLN7IBbui7ocqVd7StRS+qleugg1FIOgpMOWekrv/uQ9mF6yHX AFO5R/hYPcYkqQ6VpX1KtR1rDEMHeqC5udCsQo7b28Lpq8oxGB5XwvixNknsSlXxIGM06r JDSlejl0s3HqMm630/jO6uYhx0TveQGgnnvm9GvYndzFaQlrndLVADsnGmRlFg== 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=1776119561; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ae7p4rONId/mYxOwZeJ358mOzV9M5m0YLpPnL3N6vtE=; b=R/Mtve48JckVNgT+/AR5IsD9n/892uY9y0NUH4O4/jxU/HYiI7xn3Y1E/MYANcxTlk4xZ/ aIWfXgJwpuR5Vh5szexLFYTocYqEXspcfUNNB2HWw1IDIjASAxdHCw5mkPvR6m5QZok9T8 c1yDulOK++seUVAqNrtSPYHH9Actd7gzl37eeXuDUw3cg6sQtEXjgtfLgG/k1YlhsWNx+w Mf+Bp/0d9vPjKmAW1zW44dPiichIWr4dvaO6YKNOyiZEuudwNJqolr1lWeL/1i+Eb1x+bP bWtFKhwDeCeVMce/4DXXW3vFpM1HPli3WanuGo4TZPWLhyU4QTk7XAyelhzN/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvhxP4j5pz7kn for ; Mon, 13 Apr 2026 22:32:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 246f6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 22:32:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: YAO, Xin From: Ed Maste Subject: git: a3c457398f26 - main - linux: add sysfs filetype support for Linux statfs() 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: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a3c457398f269c913aaa4d9dedcc72a70c02e845 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 22:32:41 +0000 Message-Id: <69dd6f09.246f6.48daec1a@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=a3c457398f269c913aaa4d9dedcc72a70c02e845 commit a3c457398f269c913aaa4d9dedcc72a70c02e845 Author: YAO, Xin AuthorDate: 2026-04-04 14:02:59 +0000 Commit: Ed Maste CommitDate: 2026-04-13 22:32:12 +0000 linux: add sysfs filetype support for Linux statfs() Added MAGIC number below and map to linsysfs in bsd_to_linux_ftype() This maps: - `linsysfs` -> `LINUX_SYSFS_MAGIC` (`0x62656572`) Signed-off-by: YAO, Xin Reviewed by: emaste Pull request: https://github.com/freebsd/freebsd-src/pull/2119 --- sys/compat/linux/linux_stats.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/sys/compat/linux/linux_stats.c b/sys/compat/linux/linux_stats.c index 03783d466211..6f96a219003b 100644 --- a/sys/compat/linux/linux_stats.c +++ b/sys/compat/linux/linux_stats.c @@ -295,26 +295,28 @@ struct l_statfs { #define LINUX_ZFS_SUPER_MAGIC 0x2FC12FC1 #define LINUX_DEVFS_SUPER_MAGIC 0x1373L #define LINUX_SHMFS_MAGIC 0x01021994 +#define LINUX_SYSFS_MAGIC 0x62656572 static long bsd_to_linux_ftype(const char *fstypename) { int i; static struct {const char *bsd_name; long linux_type;} b2l_tbl[] = { - {"ufs", LINUX_UFS_SUPER_MAGIC}, - {"zfs", LINUX_ZFS_SUPER_MAGIC}, - {"cd9660", LINUX_ISOFS_SUPER_MAGIC}, - {"nfs", LINUX_NFS_SUPER_MAGIC}, - {"ext2fs", LINUX_EXT2_SUPER_MAGIC}, - {"procfs", LINUX_PROC_SUPER_MAGIC}, - {"msdosfs", LINUX_MSDOS_SUPER_MAGIC}, - {"ntfs", LINUX_NTFS_SUPER_MAGIC}, - {"nwfs", LINUX_NCP_SUPER_MAGIC}, - {"hpfs", LINUX_HPFS_SUPER_MAGIC}, - {"coda", LINUX_CODA_SUPER_MAGIC}, - {"devfs", LINUX_DEVFS_SUPER_MAGIC}, - {"tmpfs", LINUX_SHMFS_MAGIC}, - {NULL, 0L}}; + {"ufs", LINUX_UFS_SUPER_MAGIC}, + {"zfs", LINUX_ZFS_SUPER_MAGIC}, + {"cd9660", LINUX_ISOFS_SUPER_MAGIC}, + {"nfs", LINUX_NFS_SUPER_MAGIC}, + {"ext2fs", LINUX_EXT2_SUPER_MAGIC}, + {"procfs", LINUX_PROC_SUPER_MAGIC}, + {"msdosfs", LINUX_MSDOS_SUPER_MAGIC}, + {"ntfs", LINUX_NTFS_SUPER_MAGIC}, + {"nwfs", LINUX_NCP_SUPER_MAGIC}, + {"hpfs", LINUX_HPFS_SUPER_MAGIC}, + {"coda", LINUX_CODA_SUPER_MAGIC}, + {"devfs", LINUX_DEVFS_SUPER_MAGIC}, + {"tmpfs", LINUX_SHMFS_MAGIC}, + {"linsysfs", LINUX_SYSFS_MAGIC}, + {NULL, 0L}}; for (i = 0; b2l_tbl[i].bsd_name != NULL; i++) if (strcmp(b2l_tbl[i].bsd_name, fstypename) == 0) From nobody Mon Apr 13 22:59:44 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 4fvjXk03Fkz6WvbR for ; Mon, 13 Apr 2026 22:59:50 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjXj6fM6z3Fkl for ; Mon, 13 Apr 2026 22:59:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121189; 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=/yamvghVGnmu+qGi1WL961Nj0ZmKgtyb2V4a6AoUr7E=; b=kAJ5n7xrEHl9Ib4woSWAkuV+AqSaWcDqr233o5oVQ9ySIzSNd3+b8bBYg7985WS+geXo7T NctVG0Dp8xbhsoFLhQ3rcG6km4ksb+4JtSCLk0lKlVH3LwCu5ZfYoGN+U+Jfygwhtm68UJ fN2+optd5xKwVN1DGElOafXkzjHYaih8Y2ySSJBzn9njHEuHLPG6n2ZCGJ8PMXIEq10mHE 0OHP7QeCEnezroo2g8M8DU1IS308cGttuHaDh+oOuwLB7fHGakMIV9TTyZ0x4lGMqri4y2 L9M/k6yKwOyy2iSZhf6WiJAGByZtclfjh3Lpygdz1eg6pJuiCmpzGi2NIM/aVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121189; a=rsa-sha256; cv=none; b=QVt3zFrk5bXHOiUVvgyEDtX5sQdybgrGIeEdjVTkC38WqPuWJw9a5amrE5r5dCUlxm17lF eUQqAbYzjUZq0AS+Ehjucbm0v7kX6qMMpV+CGXRW3KXhEDJhGEiRAyQu8T4Fwo0XSThHoc mdJ85h8PHj9Kc2pokNq3gyf4FB5NzWdqm6lTmap8rrMmlKBdqozT3CPA3+boPXTXAcDx6S m7uzXLNojtv8o7VVls++JSKGvrS7kqqZkJOp/PaArTWB/Q4XbEalbVIjs7J2Lye4avrRj3 Qf3FuDogHZk/VOh9Pv5nqdkgfh0sHtqEeRrDodeY/nabzEpQzWtmq5i96ueTGw== 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=1776121189; 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=/yamvghVGnmu+qGi1WL961Nj0ZmKgtyb2V4a6AoUr7E=; b=t7pEaq38AGEyxsd0AUk2C0KOK7+mFNc60sP7n6twqFJwZvF9LSFDnfpg08IyABT+4p7BG6 mDqWThycoxZoDIbdA1lX7JA9COwHP3jL7IQ7oDfSiDi8fAk8Hu2mKUvtOEO17x+rLc0kaE +csBWjutFuCg1TGXzKPlfvMD2Ss59d4/1WBJz26I9GLcWS6VivjaFjGmv31E1Ll89ot9cu cRCusqLgpRmRc3pM/rZl5cNtFGD1k6qQ1J8iP5cih+ywVnozPlfNFWYMRXgtwZ1YC7celo BbRrCLVyvJfvKMdYkKAaby2cOYjwWiiI7Qigrfux4lWQh84+Cv5bANYxZnwA+A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjXj5XRcz82d for ; Mon, 13 Apr 2026 22:59:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 255f2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 22:59:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 99ad6f4f54c8..18b3ba7a3f35 - vendor/Linux/ath-common - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/ath-common X-Git-Reftype: branch X-Git-Commit: 18b3ba7a3f35f47856a1940428219ebf86f85a4e X-Git-Oldrev: 99ad6f4f54c86845d6e3f03541913c07fcdeef59 X-Git-Newrev: 18b3ba7a3f35f47856a1940428219ebf86f85a4e Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 22:59:44 +0000 Message-Id: <69dd7560.255f2.395a337@gitrepo.freebsd.org> The branch vendor/Linux/ath-common has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=99ad6f4f54c8..18b3ba7a3f35 18b3ba7a3f35 ath-common: update common Atheros/QCA code From nobody Mon Apr 13 22:59:51 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 4fvjXl6GMyz6WvbT for ; Mon, 13 Apr 2026 22:59:51 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjXl3zPhz3FYk for ; Mon, 13 Apr 2026 22:59:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121191; 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=n6FQDOthtjoh0Z+xOHQrstr8lexv6BT30K+D1dD0vcY=; b=MKNNpcmNRCQKpF9O0Wt95k0iEDJr53r0WkR9H5V8dDa9JF8q4uyx0+htZ6aauJJgTcZnmF DBonWFUM/fiMyufutsgKMFBtbzQ2krGRQOBonSVrTeWcuhehl0rsyzS3xVRbqYNklv+LHw XpbyBi1r6HlaANjlsnwcStPwDWb49TmjvfQZ7zGU5CldXLfuHpMlr8+qb2ecsnagel9meX Nty88Oh6QFABMEpKcozHp4Y0xxYX9P5jP5cK/YrQud8ZBHX1tUbci3WEmC5dKI2kpZjpCc LR7FEfWQ3kOz1DzY5qMc13bxRQtw9ldWrB64oh9Mxi0KbsGspMGeC2a2WFkF8A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121191; a=rsa-sha256; cv=none; b=utycj8EeIR7hwWTzRqrnqfMFqQhak/99uzC8YNLUcBqHbKLoDggoEksDFWcWvYTLfS/LyS nS3HNeymjQPGikDkRde4tQ98frhcBJ70eNYulfO+ddHf9zRN/Y8HDRuBEpH4/4QJrOhAcz Qsp3/UYSWGKHbhHGBdDeUyPbYruo7aF1MhkED2WQ/XaJNjE/4JhB7IKoutAKN10phVGKNy rRZfNdZeWzmPEwjVPVSS/faV2y+QSKNqe6/o3FeN3a7zI0JMvldQVUGcYvWgEsZsHIPkqq LZBiRldvZrQ7/iFDuMTLpt8d+G297VuRnADxkaE0fosyDoPeRDzQXY7e/N8X5Q== 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=1776121191; 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=n6FQDOthtjoh0Z+xOHQrstr8lexv6BT30K+D1dD0vcY=; b=FDri25irCEFfUWWQWnTKkUa4Bv8JPlBkxZRJrYiCD+5ECmtNEymdiAOniUD2ks+rQqQ2kb Mu0WPVSLZ20XT/Z3QT/uTxtqqhVPOtTGM2bndIsSqJYSthkrqK3rUAIDt1tvp0y8aRUcCx 5Jno4speC9BACtpw6O45fFSkOBqn4CyrvP8t4k28Ib+hc8Zp4CWpfYzPDhxKZkjV+8e9jD gVMma/bt2drMoFGk0FVBiy0+ABOnWNvLLv3Y7N5rSpRUlDFXn5DZ6SWuibxMo5TXAFB1SE 3choYZJpqqZQtx4URE3thV+TP+QeeFmo62BTWfZzg4IGcKHgKtCdtRuTPBVxzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjXl3JLBz8GR for ; Mon, 13 Apr 2026 22:59:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 260ce by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 22:59:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 91a3131f2f8e..bbc9d102496a - vendor/Linux/ath10k - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/ath10k X-Git-Reftype: branch X-Git-Commit: bbc9d102496a6ee93c55d32a9ce40d2f737fc9e7 X-Git-Oldrev: 91a3131f2f8e4db6b8b7999fed893ff2bedb0d2d X-Git-Newrev: bbc9d102496a6ee93c55d32a9ce40d2f737fc9e7 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 22:59:51 +0000 Message-Id: <69dd7567.260ce.35dbf3a4@gitrepo.freebsd.org> The branch vendor/Linux/ath10k has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=91a3131f2f8e..bbc9d102496a bbc9d102496a ath10k: update Atheros/QCA's ath10k driver From nobody Mon Apr 13 22:59:58 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 4fvjXv2fmyz6Wvdl for ; Mon, 13 Apr 2026 22:59:59 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjXt6nM9z3G7W for ; Mon, 13 Apr 2026 22:59:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121198; 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=WWRNsItRRjo+M0oaCzgU/Hiz3elKaLwvsiX3uQyA2ek=; b=qo8MzFLY8+FBqmRuqUsBxzA0vKxvWvGEVde+6qjgnTR5na1MMAWIV9dSauvi+sAm2sWjE7 FZ+j+xlo9IXYu9ynZxa9pSYUPrgFTdmU3qUOdXt2Jl1Q0I46vmLxFkCiBlcviwjEo3bTk6 FuCz/bfuKaRwvlJ4iRyIWCzZzYQaDhQEPAGFxDiswd9rDNrpgR309J6NvngW1nHHGsh1na 0OSrqddGt8IJ49zhdJ8F6xRRdILELLkyK/hKRfgVbD+e4XfrJAPX6XrZe6xSMM/xi0pR7w gI84Musagl+/anVg35VVw8ct88KChLxf8U+fGp/mgQNwsygp7/tU+V0T28iUDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121199; a=rsa-sha256; cv=none; b=xVNS/jMivtZi8vv7Zcwphyc4Uuw7rdFW/p4FF7DcoF1A+BwYbqd3YUtakLbr63ad31TQ9p 3xnKz3qWA5pIMmnpNNj0lRZu+w0+RYVaqUd/9fJ7uS7DwCVQ85Hy5O2sDob/NfD5B5A3Co 1vz+qkNupLMccOzNy0zcDH95FmOeYRxK9kZUo8vNx2BIwCMz4kTVDyK4DVmX61MYP9xUJG iNG9Ax7BuQ8RayXYY5cQht+x2qOwlQrgyYhdnbmVCtDKBKEtsOcTvXQf7DLu4S3tU5s429 8KkwzUudMVUHNqLyBGuxp2P04F0pFdRjIKyhls2o2/SyON2knkvifSmhF3JYEQ== 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=1776121199; 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=WWRNsItRRjo+M0oaCzgU/Hiz3elKaLwvsiX3uQyA2ek=; b=hx6n2YxhK//1Yd0zlVDDrc0pnOPLBoIZsbDpPIRd41Pc4Sydci63D+do8Zos3zxEDua5Vj s+RuVphw48HJUeIfylR6dMMOXgZnEwlyFeAJQWSAbqQvyAhQBcVth/6twb4i9pTkcxEZ6T lfze5kX6YknbZmB7lBR6e9RYWtnnqHSt4Y91AurXX4RXAxLBfOMbCTrYu97LGH5o3wX3OR CcSExUZTUqCwMTNu/icL2yrEqHeM3xPs1iKGV15AiT/4djlh9aGwWWAT11II3OoDIqFKIB dRdLu3YwXEqIcX3Lr+/fhYiyctD3jLeS49oX1oHGpqKOftDpjFBYO9TI7CfCeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjXt5qsfz8RR for ; Mon, 13 Apr 2026 22:59:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 266b5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 22:59:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 4c115eaec2fd..c3e04a1cd3b6 - vendor/Linux/ath11k - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/ath11k X-Git-Reftype: branch X-Git-Commit: c3e04a1cd3b64885db5238b60db0da610586d3ce X-Git-Oldrev: 4c115eaec2fdbcd0c5fc614e0529fa68152501ef X-Git-Newrev: c3e04a1cd3b64885db5238b60db0da610586d3ce Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 22:59:58 +0000 Message-Id: <69dd756e.266b5.3a722aec@gitrepo.freebsd.org> The branch vendor/Linux/ath11k has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=4c115eaec2fd..c3e04a1cd3b6 c3e04a1cd3b6 ath11k: update Atheros/QCA's ath11k driver From nobody Mon Apr 13 23:00:06 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 4fvjY32Zt2z6WvYD for ; Mon, 13 Apr 2026 23:00:07 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjY30s3dz3GHn for ; Mon, 13 Apr 2026 23:00:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121207; 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=mqtnFtSzlrJywL4fw2+JkVw2/rJGliWI5FZSVP5c/DU=; b=xA0vOQu7kBL4m03wxrRJi7SPhhcUq8ORpSF3ncMDJqjRCC76c7JNVrS8DNbK1FBz8omJfh LjSaXZIpaEqzSTlKZOqS/uk/1Vo/Cg7WAJxcttFKDdCOZDK2MjQOvUnImu16f01gA9k6kq S/kzvvWGGJQk8U0SMRQb1vgNZ79qNg4YaOt6g0L+CpcNk5a0IBxalRGs1GhXktFbXVMvgL PR0F906EYTb2UOt0P0YBzuksx8vAH5WFzJdqUNDG6G4chmT8M+2XldRM8s6kc4BZOx0Ov2 o9U1/U4LZ/PLhRXGosxNsawXYLXJGQ6u17vjeO2j8OnNbQ4OwW6U/idyaZ4pwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121207; a=rsa-sha256; cv=none; b=JBBoNzDm/EsSPmQOSJGNoZiBMgGyDNzODwn0nESnBYF91ZM3DxlAM6qipLEsY8zSQuPtdi qqqZuXtPzdKBaSHSjn+HvpJpbHZG62cmQlWe/CtmULWf+HWwhe862bNxX0mBY0S0ukcRlg aN7qHWKzk8T1xePMhSgB2z+hSSz8g1gev3o+mhMaw39fWp/uxejHE75uRZ5qqIZCgxbC3k hMBhXEMZpcGd13MKQMSQEHznszOQycPHlRMmugr6frDMGWV/BVqCZ1sbK1cH7rvTJji3Ny q6SoAHiTarAFJ9Rdv7W+XpXYMeyk5KA3tOuVOiNora8E0fBNBZQAyvc2LN7J/Q== 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=1776121207; 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=mqtnFtSzlrJywL4fw2+JkVw2/rJGliWI5FZSVP5c/DU=; b=ysQs77k/uFFyZYXGSmbokXBc2H8gTkvG+fwzpSuBS96+OR/nKyC791NijyvMzYML8AEBiY SpBUJbSVv7qRnIHHzfR7nTGNPSZbNbEd+yzgOQotmJZNBKx2O1Q1WePxQLr2bjF6didSXM GFYJanOO4PHFy9PAasWmtPv8WtEVHKyZjK2FerB6NaYzrG1MZWcV3bchBPX11zN88Y897g jsMGuDLlqXDp/6/02VR4gOYl/Jznc4pMH1g1UTnhWSA73JhV5SOPzedOeIxEpkBR0lGOtr Yr4NBMyJ2OaPOyPIoQ8tyqhbpSUi8bDsUSzi2IQQlpLXjqAtEaubC8jWjVVyMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjY270v7z7gw for ; Mon, 13 Apr 2026 23:00:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25dcf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 9e30e89d0ba4..80f1906e3b91 - vendor/Linux/ath12k - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/ath12k X-Git-Reftype: branch X-Git-Commit: 80f1906e3b916553fa2dabc7c77bf7d877287e3f X-Git-Oldrev: 9e30e89d0ba4d93ab956d6e088476a46a60351f5 X-Git-Newrev: 80f1906e3b916553fa2dabc7c77bf7d877287e3f Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:06 +0000 Message-Id: <69dd7576.25dcf.78aeedef@gitrepo.freebsd.org> The branch vendor/Linux/ath12k has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=9e30e89d0ba4..80f1906e3b91 80f1906e3b91 ath12k: update Atheros/QCA's ath12k driver From nobody Mon Apr 13 23:00:14 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 4fvjYB42L8z6WvXB for ; Mon, 13 Apr 2026 23:00:14 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjYB3Kykz3GMl for ; Mon, 13 Apr 2026 23:00:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121214; 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=ZlugatDiCJ6cUmXQ7x92RIfdrWQJDtzL58WW+GC6Hg0=; b=GHRIjH7UcL4MMOFy1+ZlB8r47CMGvjTk1REX6caSZUj865yAMzj62GYbRxNVJ1oy/mk56K 0S6KI4f7HhiN2f2P0p53wUfdmKCqe6wErwYgKd0tbOf2nOSO0DmUGTldZkQnRl5uazfzZs zCfT+G58KxQbTZrLND8no2r9tZAFc7DwUVxgzA5yUA9N45S+oQN0/NGvV/8mYXTEDJ6YLQ Z0wJcKQ6iR0IanPu2t/fGFk4luDYyNZ/kxYlKHK31oZDkAB+EOr/kxa+BbZgaYlnTircnZ ISzIZayge2VHuX4J4E1oPNIpnrFZxn4zAFDPBtf+D/8T4+lnHk1hTDVYIqP6qg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121214; a=rsa-sha256; cv=none; b=H8UeQB9IJWnc1mk9DXAec3v0EPxfZlXG4+sdnCuFTZ8oiVMSx7kENStDVAu7YI13Cis5t7 HocEInGLRLsLmF+bJ4pXMgxLzM3EAOKI4EVEB5dpX0anR11Jv6vIcuT9El6V7z0ar5cm/0 7h1LZuGCAktOMDrQ+nOuETaoKa/6ZK5XjX1RIBySlAr0OXM88tUlu1yj0F80DExTLuJY60 asuxmLovz3cquJ5MD6XeR6PxkT4mClB829aJawPQ/1+PweCFRGnkdNPTTPn1ttOIaP8XEl GWaoqhd10Nl1VLqHiaghBDYeG/2+It69NfK6DpaPcT3C3WcPqQbZlt+JxP3Aow== 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=1776121214; 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=ZlugatDiCJ6cUmXQ7x92RIfdrWQJDtzL58WW+GC6Hg0=; b=fn28oMf8oTc/G7WwZBCqPEHPLqMVyhP2J2UO/0ZCbr2TzFsJYHEpSFkfhj3eh74GzLTCpg cgpiabyaW1VG8KcKBwH/qc6GJ/JHFwOkQNbXPQJpPd2xPouhvkShMszZ+ogC4rji1JXDRe i5CRG594T630/0dqHCOSBhBM9NsLrLrLuWaF4niSNBGtjQjTIuTqxO+K43naJSXW7S4FwJ 4y0AQEbZaPrVVEovl7AKDBCm1P9J2wvz/cJT0/dginYZ8ZLeMW1LriufYgZa2lcfLfldHi OKCa+q+w47va7ihNEfXpTkrE+nWnMky939YzJyA3ZxQ/KEBgmZCaK+Dk9Oi3yw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjYB2D8sz7tc for ; Mon, 13 Apr 2026 23:00:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25f36 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 127e3efc8501..bc66030cad2b - vendor/Linux/brcm80211 - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/brcm80211 X-Git-Reftype: branch X-Git-Commit: bc66030cad2bc6999493d7a61a33fc3d3c6e2d08 X-Git-Oldrev: 127e3efc850139279d539791cdab8c8175db2a6d X-Git-Newrev: bc66030cad2bc6999493d7a61a33fc3d3c6e2d08 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:14 +0000 Message-Id: <69dd757e.25f36.ee9d603@gitrepo.freebsd.org> The branch vendor/Linux/brcm80211 has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=127e3efc8501..bc66030cad2b bc66030cad2b brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers From nobody Mon Apr 13 23:00:21 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 4fvjYK6S2Wz6WvQc for ; Mon, 13 Apr 2026 23:00:21 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjYK55Wnz3Gxj for ; Mon, 13 Apr 2026 23:00:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121221; 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=4+pyOKj8s9Q0rTHluAr6686rtDGJGhIJonmiVN1grE8=; b=llKWIfwOABdoVbx/xTWXrD9ggEq6jOvxWHyfU4D8e1kdwPsTca0i6MOWxnp1mXXN6TaYh4 8JhXI/quWDw/67bf+en8wW4CjXv0AICLNWn/RRLCAhjMMlL6abYYW8dSMi8ig8MHE2Ki5c qZ8b32UFyuBCTi7P6TerZezxZuut5yW3CZcTDx9UdTgllVH0+j1DcNcGw+uQT1U06VN9Ml hxgpRsC5bXPiAUA1L9nS9Fl6RkJiJHMfpqBlYWaGoOiAFe4Z1ulA55J6t60pua/joxn5Zi YiEnEdpWbzWMo2pFipgYVrrNCmvvN/4mH4alAvm/L3NiOPt/8mTIhtucRz20zA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121221; a=rsa-sha256; cv=none; b=F6xtnPl51rJsxiI80MdW/mvwG5vv0g9bAWBpHALhSoRi6uk1ex5effym6xLUbC95NL37MR XYPb6tQA0XNbrFDyAv0sAqByhUnz2YvqcAjEicnyT4UFvwaAzGC3hEGaOC8Y+JELHXDq8U Ot/l3nSczWg3GCoYp21uVAeAD3Gl4G8gMoB/fTIomCZQuzGFZ47cGEj+bb/cj/oZQXDEMW blO4ux2WpPnTwciIuEVOgIOfWbSc/c65iG6ofNP7LCDQcwfQHAHpwE8kEcF9ZiBt6cblov GIfjw0T7AguWcZNSLew6LO5jH3qryia3IPIP0TxLmaon4Bi7tAbwg4m4eFg7VA== 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=1776121221; 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=4+pyOKj8s9Q0rTHluAr6686rtDGJGhIJonmiVN1grE8=; b=RpOB95sGVf3Z/9ZgLUeRv8AuXMIEqzxuCiVLvp/BCaxYWrTERxzhNTjr++wkFA1w4Bg4Iz fdxh9pB0Rqe+JZol9yDPxQ7YfWag7OBpDbE8gxqK94MBrkjhafjWs6C1eG/ZQqj7g7NWgd HAeOC+sYgCXltQkQaocGCbnJWGP3LQLWYkMaGP54rr3cLIOMnD6qDw4nyfAbyyTpZWnJax p7QhrmphIb3BtiJXBQplhG9rcfO+kYNXWVNTP/cnNiiQtOoTFgwfcvimX4BOW2GY9Q3Qxf 7I7Eon8+59kZUdEobBzghEur674PwSbDtCFu+XsXYRs1hJNl29NwEmuvJRucBA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjYK4BHpz8Jn for ; Mon, 13 Apr 2026 23:00:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26025 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d2b84ec15626..38f28119183e - vendor/Linux/iwlwifi - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/iwlwifi X-Git-Reftype: branch X-Git-Commit: 38f28119183e997231ed4a8c0d5e42f55e0a2efa X-Git-Oldrev: d2b84ec156265e65d17182fe7f20136145a2f53a X-Git-Newrev: 38f28119183e997231ed4a8c0d5e42f55e0a2efa Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:21 +0000 Message-Id: <69dd7585.26025.114c321a@gitrepo.freebsd.org> The branch vendor/Linux/iwlwifi has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=d2b84ec15626..38f28119183e 38f28119183e iwlwifi: update Intel's mvm/mld drivers From nobody Mon Apr 13 23:00:29 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 4fvjYT6h3Jz6Wvf4 for ; Mon, 13 Apr 2026 23:00:29 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjYT67q9z3H4Y for ; Mon, 13 Apr 2026 23:00:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121229; 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=pC/xLxRU8ut/x5deJ6Drd6ks11kTsqAkh10fpPcxDFw=; b=gl4fvYR9y+8ZS/WL8es5LAht9/l0H1jSWNIHlMIRIu/gAdubzNH6swykS240LGNa118RiU dvpktkqrF6Bqtw7CYUP2TvNQaJMyXzP4aH7oLcISWoBxOmKAzv56kLTF7cHGKfGwpI3qWL X+IoxqXXtmOnFMdPsyOzCAS4Ds5ztMhKBEDPzEoL9dClmKimr9VTUshi/k9dBOWlThwaj6 u6sfgNxrZZthxjigb45z5ZQB+qWpIuyvqQXbLg56ol7TMbp1m0ezeKyDlwES7ZEG4oJx1z 9oe3Hro/J7JpFzkibbdU8bx0b24rsqp0jnb4p00XrZfHaGvjyHZTwOw7oFGUZA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121229; a=rsa-sha256; cv=none; b=Q+bv8CWSDViJz5fgNnIqxajVTJ6LNM4vgFaCbzDQvhNnGgkw4HvVwSqI3VxxTC9D+P7i4u YIMpl+iFzBUJavLyzTfwUUdibzncdGvCOj1uZQCABUmOXtC6yvtxiizAsUtXk09Z0gyP4M jcz3qGeicHmuruvhWUY36If9CSKOTwfknW92aijf2LCnNnLf2zZwqFT5mOa4iia/Cp1xOg zr9CqLyjlBaQYX4IzvrRNdwIw60/hV5KWtfIpC3LwajyeL7j9orBOCA215H++rskzalF5H +cladato6y+wxEmy7EhrnfJefwcUE5bWb6tN8XiWtVzPnaF5CE5lQIWxc21F7A== 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=1776121229; 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=pC/xLxRU8ut/x5deJ6Drd6ks11kTsqAkh10fpPcxDFw=; b=CjIQiUHe9P6VhglRPa9gvp9WvBNKzrC/5/8QlnlyfBAvdnwKtQNRKnYwxfMGG5O4XbINte JNSgaTFSCTallrKTYbGfMP9TLEVnNtzQAYYB1OxfdqD4+pF2qS93j1W1L8siyImBAeG4rT li/fOtDctBgTUafdpmq4BtLdFu31pNhCdO0vIz0vimF2QRz4/myU5q2IvWjSCkeO0q19rn zI0DIkbExobg/LgUJ0MtylfbXCiOo4j1pwi/sWacM1Uwu/rfXd5r33QfXyWlARg1ZsGBQg 9TTmDXeTaky5vxqQKY3ueY9zl0lHDpOeiYFGo5CqeqfklFifz4g/1mrRsKjJeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjYT5B0fz8Jp for ; Mon, 13 Apr 2026 23:00:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26d31 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 316122010afd..5927bf24daca - vendor/Linux/mt76 - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/mt76 X-Git-Reftype: branch X-Git-Commit: 5927bf24daca1f63e6a7100df68c7343f48258aa X-Git-Oldrev: 316122010afd2d7ff718b59c4821963df8a2c9ee X-Git-Newrev: 5927bf24daca1f63e6a7100df68c7343f48258aa Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:29 +0000 Message-Id: <69dd758d.26d31.285d0faf@gitrepo.freebsd.org> The branch vendor/Linux/mt76 has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=316122010afd..5927bf24daca 5927bf24daca mt76: update Mediatek's mt76 driver From nobody Mon Apr 13 23:00:39 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 4fvjYg4xwbz6WvhW for ; Mon, 13 Apr 2026 23:00:39 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjYg2XMyz3HGg for ; Mon, 13 Apr 2026 23:00:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121239; 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=Qv/wvrEc4fbauC4ljMle8Z87gQS4ci5ekA5ooIEE1u8=; b=BA88Lhjg5ACRHlDmA1jcdot+FNaOHqwgnb7z2z7xXEWNDXhRmyfOljNDfhjVlmY5wO1kg4 2SgqPvy/4uhIuBZk7sMKTA0wytcO2jCj9LxkfYgo0BACQXckJywqnepHwHIDcTfRi8IOD4 YK/NARxunyCpwkQ6nPdPr/DtyoEm4b6Bti8rEC71+NB2yL52pM8M3Ei2LDon+zzA1iw58L jERP+KIUNbibthKuEdz7z8xjZznFeQT6gN9GJFxSngswO7/cAPquol64QA6gERlVJzL/HZ js9MuT/r6OFcTjRAbk1lmpXpjUR3qZDXhRC/ve332OfN+D1ewmFa9xhTlYhjYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121239; a=rsa-sha256; cv=none; b=BlGWWxn0P43Bcg0oSULqx3V2FtwsTOuQbBehgpMEwvAewig9lBpJPEHL+qxj/AcpM2XEMb ZgHxtyIIO8ueZG9hyRGAaNdhguqAJuxlNx07rBnbGmfk54RhUVEopw5MYk+fk8wKZD0mDx iFeh1cRG81gfUUzR+lIp73Qw51m1ybqvZU/fGu6Q92hsoW+qmipc9bZumrLn6DbzN96EZb WXWgSLQ9RXyfABA9bIAeREN/xL70UKOPaEJmhAV5gtdS1SoeI3M5FWrHjdygtirD+RPd1y atuJy9DdPyv0gql1oj72Yqiiyfej4b3JIHyzkJ/XO+Lf95T6dYwbL5xpAd7/Yg== 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=1776121239; 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=Qv/wvrEc4fbauC4ljMle8Z87gQS4ci5ekA5ooIEE1u8=; b=r1efyEC3WhWV+GqdiaFyBX89u9sD6ciApOnA1JZ2/08xGSlY5vom5QgRrTdsHkviRnZ/v1 86BX4Hu96E2l1QKlC2wm6cv8hZGul41R3lpa2IWYUd45z36G7qRs5ioSy3a8NHhCPzDfzd SpW++5oDUgakEmIXbK0E3uhBI4p0tB3lRg1YjTjNPsPM9Me+EoClx1JABnvhdmjmVls4aN RvZbOIuhK6AQLNFcjrNEr+5IgIgIxXrQ77CoX+UeLya9PLSm0TWoPZpr+pXjWVMDmmWTlA 3Xfb4NUV8bdulIpE4UTk8v/tixeVoDPFTpz3K01x80Quv+20Mnwldsk+dkGenA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjYg1g4zz7th for ; Mon, 13 Apr 2026 23:00:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2782d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 225a2dcb0294..29163571ee4d - vendor/Linux/rtw88 - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/rtw88 X-Git-Reftype: branch X-Git-Commit: 29163571ee4d00c3f15d26136c73587b3c537cff X-Git-Oldrev: 225a2dcb02943b5ed98b90f4a5c53b2a9b50f5a9 X-Git-Newrev: 29163571ee4d00c3f15d26136c73587b3c537cff Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:39 +0000 Message-Id: <69dd7597.2782d.40bfefe6@gitrepo.freebsd.org> The branch vendor/Linux/rtw88 has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=225a2dcb0294..29163571ee4d 29163571ee4d rtw88: update Realtek's rtw88 driver From nobody Mon Apr 13 23:00:48 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 4fvjYx4r1sz6Wvc9 for ; Mon, 13 Apr 2026 23:00:53 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjYx3XhSz3Hcb for ; Mon, 13 Apr 2026 23:00:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121253; 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=Pt3evm5iE/xYA7eQzJOh5T5eqrcG89seJGU4NlXkCC8=; b=c19HReSZx6kz2nmOJVu41efrVhOKi2yH1Iw6JxacDAVgOICbGpGkSwHvlpC58mtEYhOWk4 zELAN0k6J4hdFFimEMy1hJ3IIYAg150Ja/Bt58xnThmW/WGM6wPpxYmxTO2Fl5R6iSmVOh FCAnn/yf/TC+56sssB15haxeYKKPiZzHIHnVNrjxo4RRNugLtQln8L/68bthJpz0I2eRXI UpgS9Bpwn2+kdYheexsD+rVtfpZ0QL9g00xvnBNO4HqvIp9CF7r84PXWYnWSuci0/V0UZ7 jmXTiCjGd1zVSYUyWAbNoFnukfPWxqeA49ZmqWKaBI8/sBlNDaVDUM4DQSIFvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121253; a=rsa-sha256; cv=none; b=GaoP3bppdax61IToOwmnK5pxPeHxeuYowhHT1AVIX8Ysx+EaH/poJlen6jc0WkHXh1nM73 AVX2CyhQQ9r2uEm9F9qdexvyiq70W5Otc6X/5DDr41xg24zVa1NsHWsCVqRoD1kCP3cyxw QV5IgpfEz54EMYJZwkQEZkmO6tVmwTIqNTQDwSJzBFhIT/wPilMrPpnTejat6UhvMDwHz8 K+psMewYTVSf70Z55Q76Q6b0XqeCG/MvLHbl+qSWJDXg91YIKXHFsBI2ansvGkJWG+3vbj 5LTNSUZja/J/AfTDqzhJc1GrG+xrbY/ACZKh8qC0sbli3YpTIElhdv/3eh5sig== 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=1776121253; 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=Pt3evm5iE/xYA7eQzJOh5T5eqrcG89seJGU4NlXkCC8=; b=tN8u47OK1+CErLmxk/zVeD+oC1Su5FPXHmzh9RQoKp8IjFGuTOSa+Mz1tXYS1xHSFm1U32 5pOe6XFn+G6gOLcx4X2HW9ZyudzXwIWK5Gxw4gM3+t3OY8+hhFiam5wmKZks8ZnoP96Kz+ WoV04Y8aOgWJwXAjsNOy7MDGO2T1QOW+SIPynttbBa+gsYbYFYQh3L59xQeEpE1+a63W7H TvJ8CHa0tzcDQRCOHAuPXUfS7xaI5hHx15dhyEsk0ga4ISGjERNAKt7WDnhQkR0q6E1eUX XgXER9QXPE5IOsYmPGjQBDuPLhQEKVDBrEpmFAYh4RexjpPbZGyZMZfYv6iAiQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjYx2n6jz8Tb for ; Mon, 13 Apr 2026 23:00:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27088 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:00:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: f5eb24d531de..777767fb72f8 - vendor/Linux/rtw89 - vendor branch updated 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: bz X-Git-Repository: src X-Git-Refname: refs/heads/vendor/Linux/rtw89 X-Git-Reftype: branch X-Git-Commit: 777767fb72f8fdc7a20023ca89d7a28edf3e26c1 X-Git-Oldrev: f5eb24d531de64cd493796fc0790fc8fc825d161 X-Git-Newrev: 777767fb72f8fdc7a20023ca89d7a28edf3e26c1 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:00:48 +0000 Message-Id: <69dd75a0.27088.7e9580db@gitrepo.freebsd.org> The branch vendor/Linux/rtw89 has been updated by bz: URL: https://cgit.FreeBSD.org/src/log/?id=f5eb24d531de..777767fb72f8 777767fb72f8 rtw89: update Realtek's rtw89 driver From nobody Mon Apr 13 23:07:02 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 4fvjj75QQqz6Wwgs for ; Mon, 13 Apr 2026 23:07:07 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjj733q5z3JPw for ; Mon, 13 Apr 2026 23:07:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D2Fc5Q0x3Hlx76eZHWOY3ROqBKFv1tr0vOwQt8IqzsQ=; b=IhZvJm7CpV2QTMpiHhzN+o6mJVIIddtkLZx/vG7A4jX6iqYcQOlgedU9dNjP/f7A5ghFUz aSO8ZnQ1sD0xmaTIK8BbrLv/8c2kRe+pqKRq4XhxiGZchO0Ki/4DYZDk8vvfEXiDjXOHJP Vunh+xANBWVBYdejiKomUBUtx6qrZ/Z1FjF60nTEzu+hAUGW/o68WcVI02NtdJ//2vzZYg qFPnoqKOImjU74XCRtMB3J+11bG36mkROjFOG5OaLShZ6593vygbX6arhhk0+b9PUgfFWA /YcSUy957n3ZGbQ1Yr53hDvK+rW8nvApcutTur9jyuiRUvegdpnCWgZlDSCn+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121627; a=rsa-sha256; cv=none; b=vLLyrY8ehs29lKlplx+uKhKzQtX369HRVF8Y7oUMDrAol53gfIiWQgCsRRfvv7G9D+izql by2dyCPOqCFYzoqMubHcd2Csie6Sy7a+CQqUT1jTRs+N4yCnLV7X0qT7lywQ8pjOe4roWB YVkCcxf4n/6cgI/QuEr0jn6MxevBHhof+7lRKrziWP14T6E9GngdpwbPwmv3JQbshOVsT1 4pS6ldihdm48q2JPKXttWcdVsbdURo3Hlle7nyTyUENWzzzQbx0dAAUlcpzhOncjVxJYZA TNiUrQucFbC5Ap0qfwKZXFsVyGxtVvQeq9oA5ZOPNh4vL/OVg9pvksyDeSJyOA== 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=1776121627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=D2Fc5Q0x3Hlx76eZHWOY3ROqBKFv1tr0vOwQt8IqzsQ=; b=bjnlETD0Q3N4RobpZmx3dQbAsQXe4XXKNBMklDMSQkCUOeRnp8MhVcteT72O2ML1lH10A7 i8x7BujhBVHVjySoXUbK1Z/lQMG31t5/DQTOrPUhVaUPF2wat+1nwaIlzkBTmo/KplKqZ2 v42i0vcnmHprPT5m3bwtm6PKAmsMy5U0X3w3gq7r8zZRAQLVyiNkEdmQbtjZXgPH0CwQln 9wMUsb45zKgwMQyx1MDK0hCaJDAEX8aE+umNii2GRrK5rYZ6eQ9X5dJJfbSOD+qUUx/oTv UE7c1LSbd3EDmQUAx4rZE1hOFDoIaDisZfe1lqU1c2qioivrZGxuBNZvlVbzJg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjj72dLjz7xM for ; Mon, 13 Apr 2026 23:07:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 266e3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:07:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Cc: Kristofer Peterson From: Alexander Ziaee Subject: git: 81b2055c49de - main - sh: Increase default history size to POSIX mandated minimum of 128 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: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 81b2055c49dec8884d7bb23503f1dfeac37ac95d Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:07:02 +0000 Message-Id: <69dd7716.266e3.a3b35ad@gitrepo.freebsd.org> The branch main has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=81b2055c49dec8884d7bb23503f1dfeac37ac95d commit 81b2055c49dec8884d7bb23503f1dfeac37ac95d Author: Kristofer Peterson AuthorDate: 2026-03-24 14:56:48 +0000 Commit: Alexander Ziaee CommitDate: 2026-04-13 23:06:41 +0000 sh: Increase default history size to POSIX mandated minimum of 128 The default history size in bin/sh is currently 100 however POSIX.1-2024 mandates that a default greater than or equal to 128 shall be used, therefore this increases the default history size in /bin/sh to 128. POSIX standards reference: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/sh.html#tag_20_110_08 MFC after: 3 days Reviewed by: emaste, jilles, jlduran, ziaee Signed-off-by: Kristofer Peterson Closes: https://github.com/freebsd/freebsd-src/pull/2093 --- bin/sh/histedit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c index c109cf20613d..a9a4837a92e5 100644 --- a/bin/sh/histedit.c +++ b/bin/sh/histedit.c @@ -233,7 +233,7 @@ sethistsize(const char *hs) if (hist != NULL) { if (hs == NULL || !is_number(hs)) - histsize = 100; + histsize = 128; else histsize = atoi(hs); history(hist, &he, H_SETSIZE, histsize); From nobody Mon Apr 13 23:09:33 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 4fvjlx34rVz6WxRF for ; Mon, 13 Apr 2026 23:09:33 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjlx1z5rz3JtD for ; Mon, 13 Apr 2026 23:09:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121773; 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=OSi/htrqkqR36p9w8dgOXFoSnwiX7gBRiAZfcvN/jGQ=; b=SjzujRIdc5b58FRz2oZxxiWZpPqXBG/sXJjUukSGi6Og2EOfbAubgtzkjIpAc69FxPRVkZ IrRvGswJAqZlH5WyRwEwH9ev7oLDwExgLYRuAVLIQeeVnlO+5c6Ae+g2qXkdrTYE4id1fa oyINZ1ooA2rfsDPwFpCOEYgUT1OtdgoYzkyzmVhQD0n2HkKHpTv2ipXgAXBbuDL4wPJ0ks KXCOJdCxpCTmI7+3L8E2aJ2vfOiK6mEmbEUHgAHm4aocSg6NM2vpkFLn9xxoxSkGjizl4G xxZVeOFDPzJSZxnrZPWMU4oUIBnaY0ptW1BxGuasBjDMWNM/BCSyhXfZZtY0Tw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121773; a=rsa-sha256; cv=none; b=t9GWKEnAeidmO8q/5qpvclcyb5AUNB4Ti7v/39aoQolamfit52HhjK0/aFBNDTv+NLLgZx 48VnHj5FjG9V9l8biMayRiP1qazeRjCeEFi4SJhIKzMc0oN+fWDDNZaGWUYKllig5OfdyK vTwIRAn45LWy8aGhVlTPbWgajRs7N9tCSDfjqc/nS+oYPtxQJd7b2AHeREd6T8jSNgz4+F AI8WAE14eTrJS7lrcQn1Y8ZhPsW9Lvx7Ut7JbPTK4PTsNfDqJ442ZMR6lCCh5c1Rs1p6Wi xwpqW8ELSW2NN+t2yRNxgU3WbXUwbqKHeXe70G33+vR7jkMWgpQ2Mi/oZrUEVQ== 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=1776121773; 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=OSi/htrqkqR36p9w8dgOXFoSnwiX7gBRiAZfcvN/jGQ=; b=FKnfTUTWvcmMEkJwt7yw6vOvK5harPSkUDcjim36J6SI1yoX3GbZhUQqGSetknz2qpHal8 QybPdzGfYE5F4EScZti6Mt1jK/ZvtJ56Tyn2wShYN9h40RI9kHSfiJvW9Swl7+zY0J1F4L i/KWx3KBIGQpPvf9p/vB0FYeZzC9ZNlJmZhDPJY7zdRfmjCYV/SFDSVsQfMjh7WiL/QfH8 8WzBlte6CAPDZMaeb6NWanTATml57ZqZzh/JMrGnLsRWxggvj/TJM1nBsa7pKt5z33E9zH ASeR+Q4HCrAh+d8vfrdhQduZKEVyDguxe3FIGKANLjtMtsKZczQe54OeopshYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjlx1CPzz7xN for ; Mon, 13 Apr 2026 23:09:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27751 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:09:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 698552fb2854 - Create tag vendor/Linux/ath-common/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/ath-common/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 698552fb28549280c55b174cf92f251adc8a0412 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:09:33 +0000 Message-Id: <69dd77ad.27751.1db0f2f2@gitrepo.freebsd.org> The annotated tag vendor/Linux/ath-common/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/ath-common/torvalds-v7.0 tag vendor/Linux/ath-common/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:48 +0000 ath-common: update common Atheros/QCA code This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 18b3ba7a3f35f47856a1940428219ebf86f85a4e Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:25:17 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:25:17 +0000 ath-common: update common Atheros/QCA code This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:09:57 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 4fvjmP3r0bz6WxXK for ; Mon, 13 Apr 2026 23:09:57 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjmP30qJz3KBl for ; Mon, 13 Apr 2026 23:09:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121797; 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=yxeMWkFpEVjCHEi1sd7wE016+hH9SMGF0GDchDuumWc=; b=nfp453pVpKPntcVb922Ky6Jvfh+VPCskxkXy2gcZ7QQLofWiW1vX2QclkVFBr3JwnPVCm2 lJtWMmP3fRZgppfh45ehWct3aG/+JX8Ur3cHi6Pfz+pH8TKsaM2GuecwkScDt0jDS/972r 1F+/KAZmlFxvzknruIOGaJTrDgwISCj4TSkiGSCkvQoP/1sEBH6GAjhPuuXYc/sGb4bvOo Zqt+dcMXKTMf0CltBCesh4GHYc3Ke4ohC37tNVYs5TSIYJ9jlL60Bd9BUoALufYMc9T/y7 s8ke/VtyUNgPjveczsCy7zz7L+Rr3pBdvy4sJMzdbMXZrJjxRoFeU1wbZjNOPQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121797; a=rsa-sha256; cv=none; b=mx+bwES6KbnaKIelyC8lJHsY6cfFCWk2awt3m4s83EYYoVTR+SmEGAlnUvBSXMQ+YapcuS ufTt2ML9OhG5Ry4FvuKqyKGdUlvESafZ0P9zGmdeV9WjHOAsDHzQdgeTGHMADQOtGwVUtW W+l5eFk5AbLpTK7uqcm0CzIrpSKdmEMaDd/r7tCYLhviwVoSRpoXmKf/f40uj9hmjJvyFk IAIYNnpiziFcIIQqqiHwfj+H+18pE/3uKNHc1uy3BHWxUomOjQNnrwEx4Y6N3Jn1EzdyTh C2+aQAMrcmcSj0GoJhH4dy3f/rHcGJtIbF//SG3yewRBtYL4N8IPgv1KTFHyNw== 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=1776121797; 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=yxeMWkFpEVjCHEi1sd7wE016+hH9SMGF0GDchDuumWc=; b=mMnlbfP1kKpguk2jauwlhkN4TUKzeuPtG5GSzvb2mxhHeyBjwXtH/j5NIRPrMPG/hnR82v yDfLQxTfrpbRtyowVJnwMiVoGRo5k1nnA+X+WeB/UzwPRAUcc5x1+Hh1UeaTub76zee58j bBXvFrI3ux9M5zASAQU2pTglQbUeflPSTx8/c9sWQH0nm9S01zoLhV8QirBEp+eDzLZ8/Q B7S1gC/BJD0zMfgAQNcMj/cYMdqBSmC/hxEKS/DBO1h5grCuZjf4hYAulAj99jiG0sakV+ Iwg6ThcR41a4pmMQc5xI5aGoLCBD2wH+1EzE+sLdWaqzi8kAxSPva9WwMVgXIg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjmP2YdPz8l0 for ; Mon, 13 Apr 2026 23:09:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26029 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:09:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3b90b50dc11b - Create tag vendor/Linux/ath10k/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/ath10k/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 3b90b50dc11b57157e09a9f5659fa464d43ed545 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:09:57 +0000 Message-Id: <69dd77c5.26029.39812140@gitrepo.freebsd.org> The annotated tag vendor/Linux/ath10k/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/ath10k/torvalds-v7.0 tag vendor/Linux/ath10k/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:48 +0000 ath10k: update Atheros/QCA's ath10k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit bbc9d102496a6ee93c55d32a9ce40d2f737fc9e7 Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:25:41 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:25:41 +0000 ath10k: update Atheros/QCA's ath10k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:04 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 4fvjmX4x0Wz6WwVP for ; Mon, 13 Apr 2026 23:10:04 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjmX4G2pz3KWT for ; Mon, 13 Apr 2026 23:10:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121804; 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=1J3YoGje+r/0AnYd9PxhiGT52Qr1QHzJUGUhvMB3g30=; b=Fk/V7/XN6ca7XCvWqDuja0B1sC9iq2a2PhOiuhGNRY0ziojVBWR7G6QrOuP58WzG39T3E+ JJ6eiuk7cV3nJIfj2Qm+XP66jOyKoDvAKBwwnY+bMXkrcuHaElhcRTF+vsd/++waDd3S7K eCNwGNqi8q6hYBn73owzF0JuAuz1WzN96efF891NGEMVxvJsMvgtFZLay3p/pZgsHXaLGO ZGt+a5JQJmiKi5H3J2wQX0hzd5JXz2Ec8HYD4LwdaMtY7hdwXTEdqaKE1GLBVWumxKcmlp gEEReT65auWYVo3n5JB+rxKEMoLyrcvxjZyyD8klI1HgHBihl1Siz3RTnJ2UTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121804; a=rsa-sha256; cv=none; b=W4LykE3MYDqdrctLNJnYHtE03RielejXzHR4p7p/ZuTvcS7oBynNSD5VILcTCWJNiMwZ/D N4h7hsnwMuptY6lkUz/rKvOGFauFwK/Wga2f9nk8j+nHQ5qr3KcAeOW/8cTWtoQrBAvCVv jQ6MOoEfQR7G3xWMemfLeu+fzTzz6WnXeRZVp/VNSdoTMPpKygD+mnmdb3yWZXU3dmToJV e3CIvze0f2BQQcKvPj15DvR9hU2lwjmrEvQgdmBBnodzZ/s4UUy4quIOwiORBD9/thjl/X teBegKpNaYRXSqofbavajYq/bZLLDdZgnZ9QeIzWUXNFurrbfS+lHOl69Yyykg== 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=1776121804; 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=1J3YoGje+r/0AnYd9PxhiGT52Qr1QHzJUGUhvMB3g30=; b=C8d94ilvQu/ONeqKyZ4eQrbKKYaBGlh1kaxnJoh2+fUaZ/gAmHlTeIBCr24+UXVU8GaL8p hf0iZFUCOCqYxrJPDOxnNvWjMj9pseG/fpVc6xiclkU9wS+8zTwHeuz/QiSsTABykhZP6n mGZOlWKS9mD8Xp/dui+939K3HUEZlbsgUEGPPzfooPYP7nb8AwRuA4r0cWY10UQK9sxZ2N Mun4hiypFEZOpgZlRFXKD96IbU3M7ek6f3YKY12yiFk0DIMgzc10LOcnTg9U2idfgDlbjt S3M75T2C/+YiHoPZCnCcOT/1FgmTLPeOgwfhT8g9W6zZ+ZeiBEiWk5N2jdvUTQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjmX3cMFz8X8 for ; Mon, 13 Apr 2026 23:10:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27e85 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 986d1f304d87 - Create tag vendor/Linux/ath11k/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/ath11k/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 986d1f304d87620998fcef6fa2928976c1607daa Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:04 +0000 Message-Id: <69dd77cc.27e85.6fdc831e@gitrepo.freebsd.org> The annotated tag vendor/Linux/ath11k/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/ath11k/torvalds-v7.0 tag vendor/Linux/ath11k/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:48 +0000 ath11k: update Atheros/QCA's ath11k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit c3e04a1cd3b64885db5238b60db0da610586d3ce Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:25:44 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:25:44 +0000 ath11k: update Atheros/QCA's ath11k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:11 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 4fvjmh1nhXz6WwYH for ; Mon, 13 Apr 2026 23:10:12 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjmg75LJz3KdF for ; Mon, 13 Apr 2026 23:10:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121812; 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=0fuJyXtxZEwNtpuKtSv1jJPL3MPK5quEYGNNjBJOLe4=; b=O9S3HXM57aeFg+Ens2IpKmymVUfuB4szBUPAWtcbk91uBExM5wWaFpkAcxL/we3MFQgaCk 8l5klTgmohH01tnVjGgT8RimqrUR4jfbLXNyQO2xb5C0LSjTdQWxISQynSzIlWw3XOpWHx C8Ji+SKkEfOPQY6c6hsPhNki2VHCry1ewdubtUKaBreNjsuHiauzL86+O5wAxsalxetxk7 +hTfCRr6RATkKDejt/RFnOUz1a0eIlxZZ1jvPBZt6tgxgLH2EQsOlNPz28tYpxnOe+ZU2L 3RWz26ZMghI7ebIdjM9ewQTuLEzWb3GwunMOdE5UrKEeSKhEw+lw7WwP8ho2gQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121812; a=rsa-sha256; cv=none; b=MdtNddr8zskEMlmK5jdvGvfVeIlTsjAH3TnBHa6Mw9qrLseOenNH2OMR/Yq/iSM1XcumN2 u55ka95OvtUjKT7TQsiO/CnkmzhU/st2VFckRYBCEcN4ZqlKAzOjSCbludpZyA7Hv80sfN zTDbGk0vmyHj1f0TwhEzLK9MJoKlkU6udI8HwsL7+8z8ZcQcKT6f2TeTPoUPjsj9Qsmj3K lUcOOlfyIcO0mBfXgjDA1WZh3WqrWI0JxJHsE6s58XsCbFI+UWeo0KO6Y4VJqeKtw3biA5 9D4CmgcBtfV9brzqLaib2wH9g9jdLSofuDLGpKEKMIh52fVgoI5gfT9xmGYcTA== 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=1776121812; 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=0fuJyXtxZEwNtpuKtSv1jJPL3MPK5quEYGNNjBJOLe4=; b=NSXjP5aGIxZWfUqZUpOoxmGfXISat7WkXACA9Oes3VjPSOJD7EZsG7lv0i0pINLioRdFuy TkBczGHaW/RKEqIOLJx9yz67mmUx1ZdK8sjoAv7/X8iEs4zRgiikKojpyXgMsCaPI+9ndE KLqlg7CogfSqABncYBPxa3BimifLa/drs5Rb81nuRg5aRnZqslti3EYJCXG0jjh2+UWzpa 4VgdzPCKp2oNYRuLA1PWZIFgKVoiiLfrpGGmsT162Joz2Qvsgzv+ryxAak2YJFHlBICves ulTeYfAaqBU1/kRQ6kBU9F0blQHs2SUQ1bZeb85Jnl9MDu0Gy9tS98ldvWogpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjmg6dyxz8KM for ; Mon, 13 Apr 2026 23:10:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 271b7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: fe0c34345982 - Create tag vendor/Linux/ath12k/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/ath12k/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: fe0c34345982c0f2f899898bbcd92624de581d94 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:11 +0000 Message-Id: <69dd77d3.271b7.7c7c0d07@gitrepo.freebsd.org> The annotated tag vendor/Linux/ath12k/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/ath12k/torvalds-v7.0 tag vendor/Linux/ath12k/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:48 +0000 ath12k: update Atheros/QCA's ath12k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 80f1906e3b916553fa2dabc7c77bf7d877287e3f Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:25:59 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:25:59 +0000 ath12k: update Atheros/QCA's ath12k driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:17 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 4fvjmn6jdsz6Wxj2 for ; Mon, 13 Apr 2026 23:10:17 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjmn5sbyz3KqD for ; Mon, 13 Apr 2026 23:10:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121817; 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=yrH/Xvt6IL+sRwvnK6hgVKBjcoysqzfH1y+3vdDNttc=; b=IMYzsFHsTUJwhwH0SssTRamxG3SvSkXwu23SqTEFt1IbG4lgNLA5Djwkrp6LkI7CI3L3s3 oTtiyPUAdAS+UBjCy1vwTBqJ0jnD2zrbsOYt2yUTucg3SWTBoHpYkzbIWcBYIyuCFsp4pE /CPSIkzfA2Hb8T9t8oDDwpPE+swyPCeeDgUGRRzs7ko/zP42Vtkjc9/vUhzHDKhMGtsHB3 Gai/U2FjA3ZbzCoHKrvjrrqV4eYmtu8EAv96ebHQ6031iZipUHnPcOukeq+jRQOizyh9RY y4sapZKSi2K5Lv3w/4PuI2LJT2mR3FQXvdURLoyr/qImrOedlesHaAsPHZB/Jw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121817; a=rsa-sha256; cv=none; b=C5N7fA/zWUtDoF4e0MjDiVagq08OIjp2I3tGPuuuCC/1ckX8zMcln61SmdWV7bHimJeZJh hF+EWm7VBx3/qlWdAp+xitt9LqcCkpMG4F9ci6irs6Psb1TqwxpHBNQKcElS2z62ZNZNtX aXlfTdi0E7xIwlVfGftNCGbHaugaP59kYsdVyuzmO7Zz6ewuhLMhXXabcgdUIv7eePZCwT RtUTGaOjHX56CKBTMh7TAJJxfiitKSmGfJwTJ++kGE1BFngPVf0mNAvwc+7bOHi/gzRj1t nnm/4B3R/+kgNBSvVJ7yg7VeguyLoiT7psK5GT4x3LWC22A1+MfypzXqax67Hg== 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=1776121817; 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=yrH/Xvt6IL+sRwvnK6hgVKBjcoysqzfH1y+3vdDNttc=; b=neoGNGnW0LUfJVZxQfLrRTLyZa2wwKCKqQI3LTjWP/XTbfTPsQb2L3KaeSzzrNQBxkOEBx SJPnx8vMQEgZGRWqQNFF85GAjzVUaABAlgSvHy8LBXHRj93P7emyg6KrpIvp2WXYHqnYXH BbF6bXm7mQ0vmwehw7neyMxJp6qwVN1PsjXZae3uKDW/XxqK9TYBPIiHpRXjpe0DO+r/ZE xLp5vNb0wwFa3dvLAvE3hZm6oU3PsR62zBCKt6v0ci2hbVZOI1ee6fyxipTpd0/Rg3Sxaj FAnaKiartLRUfR3FjTaUH+iVs53RsPUvj5g8I+Q09rQ9lG2LnEoqDxRVD8t/cg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjmn5K8Fz8bs for ; Mon, 13 Apr 2026 23:10:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27dbf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 438feda4cc90 - Create tag vendor/Linux/brcm80211/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/brcm80211/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 438feda4cc906bd5a73ef31659e38e060b73991d Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:17 +0000 Message-Id: <69dd77d9.27dbf.28ea800e@gitrepo.freebsd.org> The annotated tag vendor/Linux/brcm80211/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/brcm80211/torvalds-v7.0 tag vendor/Linux/brcm80211/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:48 +0000 brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit bc66030cad2bc6999493d7a61a33fc3d3c6e2d08 Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:26:03 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:26:03 +0000 brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:24 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 4fvjmw3pHSz6WwVX for ; Mon, 13 Apr 2026 23:10:24 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjmw2rFfz3L7j for ; Mon, 13 Apr 2026 23:10:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121824; 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=WqArl0YmOZv5pDPc/dtueIj3ydkiLtEYiTRAaV3r2Qc=; b=ff9ryXFKY0spRmjcnSQbr6NZKIBlV8cWKTow8cmJLoDnjEHNJV0uKsvaiOv/7si2er9PzY BNPip+KCcwMxwBL41E4zCnJP0UDjMJmKee59lk80xa/f04z7+z2Ncw3N7/XAWgpvya11Dq XpA2a+7b+KMStrZq9jprP6o22tsjUu/RlD5RIcIyANLyNRIXlp5/89YiG5T2wFZA3Opnh4 q0uGqkiCqSvSJ8wroRmD7mei8qxSeX+avQUqVDFHA9/hQP4khDBPNb4g00gG2pTifAA0EE l+Saxzb+yu8FF3RtOJo2AfKQVhRSK3o72z+iOAc5cjK5BVs346G+WIP7sunIVQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121824; a=rsa-sha256; cv=none; b=d7E5QojaMi9x3h9qkO/DcZ9aptD2ADgl53IWgjm08tAOmHJ5frLtD2wP8pTVf7M48P1NCg 8yOxNDua+NGJ3IRxGkAumZcGU0IqBfRJvuSq6ELQbmY9hJPcvrj3iaMo2nTd6W91ActHbq MgiBILCEFCBrBrocy/x3jzeLsKbZcB+maGDBnPEq/sbBgjux2/5FRIwonULa9rlDdiZS/+ jR4cnm2BG2YeEJ/CW0AXHmL0efwirgP8in44LRy2ti3Ai2+/nbRogktm3U1/id0rSxAfrk +2xGXbib62161qaRFTljvasaAmfSmqlPmmQcmYzrWQNxVBgpikqJPWP6ul63jQ== 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=1776121824; 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=WqArl0YmOZv5pDPc/dtueIj3ydkiLtEYiTRAaV3r2Qc=; b=OANhX+ENRwSwZ4h1d8oCAoa+Uss4BE6CXfZyB3jzIIyQRwOLIr3WsaGhHdu3rNTG+R6uFy rhplxsGynBOrt1hpzrTDSibdjOTu4v7/e7cj+iJY0iiDa3TFCRWaaRPQJ88br5qncGa3t2 jyYEDhpxH0iib7VGIaR/4iQpAfcOJ2XgePRb2Om3CdmaYFGGi9nxw+Rck289G47UUMt9Lj Cs24zTifmLGBXtug0O4oFC5RshmIphH+XCcS/aIZHrmnJkYnqzrgchWaSwrLJuHGj19QhF k+HSKvPsfwLnZaY4AYeNj1tzkXGU/wp4DtveDyMJfyonp+2+En9d5+RDJ8ROAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjmw2Fdrz8l1 for ; Mon, 13 Apr 2026 23:10:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30084 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 3ba03a84df29 - Create tag vendor/Linux/iwlwifi/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/iwlwifi/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 3ba03a84df2964a30a3b08a5b74629d961450010 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:24 +0000 Message-Id: <69dd77e0.30084.294dce9a@gitrepo.freebsd.org> The annotated tag vendor/Linux/iwlwifi/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/iwlwifi/torvalds-v7.0 tag vendor/Linux/iwlwifi/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:49 +0000 iwlwifi: update Intel's mvm/mld drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 38f28119183e997231ed4a8c0d5e42f55e0a2efa Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:26:06 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:26:06 +0000 iwlwifi: update Intel's mvm/mld drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:30 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 4fvjn22vY9z6WwSD for ; Mon, 13 Apr 2026 23:10:30 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjn22D0Dz3LMH for ; Mon, 13 Apr 2026 23:10:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121830; 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=HWd41GJN/E0kz/YyC7La4Ac7LEDlufgHcTpuw5Wbsdk=; b=MMv7pruejDgFtW0qB54OK8tTRSHMMD7W18T5mfZ9yPP8CPf3Z7OyObSErm3DsgyPoM8YPz kZw9xFoXE/GXA3atixwGbs1/LsLTStkSxW+vv6KA3bk45mYPLKtP4UDHasy0xP+GqZ26xM pjFwidAuRuA2kJqajaZ3JxqF3/ThcgZLUzTCVwPYWg3jZdPrXVqshzqYgj+iDyWH0zRYj5 IYTA/pegT32oPPM5TiTuYafRG1Vj8apqeAwcxsss6LpawEF0EhxT6Qr6SjvO5waKEVQS1f BHEy8RmIUpOdTiqHQ/yO3cH96syOSgIrJ9wLkTnnUx1jYeD3yVbs8WbipYWKKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121830; a=rsa-sha256; cv=none; b=VQa7ZGYC2hJrXmPOo55NEthTdtAU/A98QwLUL2Q4mTlRyqXNmovgc0UpT9tXe830rUZJ4R 3GIJl5BoBObrx6jgEsuEKKamsILKA44moAXGBQcL13Sx4q9iB6wzznWzLPqu+S12SuFs3M vGeFsVvhTn4F7V1Yanrx7g6E/Id2EWdL1LVQM/04MbLihn9W4TJgqDG5pSan1qSN35q5lj kSiFf8kvvieQGszfeAt5OaHrBr+iza0kdNdwwJyogu0DyI4N53olW3QgE2ffVXMOfhPAd+ BamNWovTbA57R/kjAMFdrURrbNmPF6FiAVeJP1bfQUnN2d8D7g4lAjbMPQwu/g== 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=1776121830; 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=HWd41GJN/E0kz/YyC7La4Ac7LEDlufgHcTpuw5Wbsdk=; b=t2LqYbirjU8wAxi8r3feQa6ec/Ehrrwqks9O571Vf5BoIoa6SouuYp8Syv/LR7fFBWk41L WGI92Q+r2/Kncq+9Uygb5Re30/z0853D4OSQhAksFNXOSPBMbRALykTASkYq4wbg57p5aA SrDBDVcM+e8murHQtRGxPoT+GJW/7AXuzcgyCP8NQHJkMVtC9rmhf81jSyv8SLySlveYag 9QQHqciwTRHsWQsun2UujAzyuvKWi6IM4uAdwIlaIfWq98ObgRdd+HVXAUKrFPwwmb8I5T ZbmCZEXtZwzgxHjWGnRlFW3BYFegcfoKNJq+bPbDODEWB2bszS11TZaNllGiaA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjn21WWcz8nG for ; Mon, 13 Apr 2026 23:10:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25ff3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: cb4e4ee433f4 - Create tag vendor/Linux/mt76/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/mt76/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: cb4e4ee433f4f2b89bb34f40125f420bf7e95d08 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:30 +0000 Message-Id: <69dd77e6.25ff3.7e908ffd@gitrepo.freebsd.org> The annotated tag vendor/Linux/mt76/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/mt76/torvalds-v7.0 tag vendor/Linux/mt76/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:49 +0000 mt76: update Mediatek's mt76 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 5927bf24daca1f63e6a7100df68c7343f48258aa Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:26:10 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:26:10 +0000 mt76: update Mediatek's mt76 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:36 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 4fvjn90zh9z6WwdB for ; Mon, 13 Apr 2026 23:10:37 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjn86F1Zz3LNG for ; Mon, 13 Apr 2026 23:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121836; 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=8XdkFQWehZD/JwLC4Zi9Zsfqcdy9wRDJwNfap4970Ck=; b=dEmb9g2REJxnCe8JXiGjHh3U46RAGPNBP9BhvuaSN/+DwaDuXFLJrN4h72koRNIhHkJLBw faSQQ8BZyQCBk2mregch7RD4ZAN+m0jAbAVIOmQz/s1CONsG5vMBAJhdIe1pdsqzR/+zz3 hOCcHjMOM3l85J0pxY1gVKpyJDvNhZ+WxESIa8ARztreojjmONHwkr4QHHPk3WM+ny5hzC Rrg0Il6PImyylDf397dw4ffQLigivXyuSrCzSMZ3Wqp37C4Ql4xKSn4fSQHdlFXbgqp+yw WRi691oAA7qbm8M8YTPHXa39ZcgO2BZX/r0W7sD3VhlAKHjcjyb1i1ptHFaBag== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121836; a=rsa-sha256; cv=none; b=V8iltnCPLWotln8yUuHGJ41RqH/NffF2s+9x+QTCkSXdqucpxzyDo71nW64xpYeTajRlF4 4BQ6b5yq8TPHGwL9Jc0qoC6VsPl3QxPVgOBN60CGB/rpgyuU5pB9ViErKuHUPBiosiiI1v qFhKtJCCnFxd38FGUY/vUo9Q7Je1So0yUYh5FvRGUjpL/hm6KN/gdi9TYA2YIeRfh9tlzI 9UhpRawgsr7H+eO/CDM0ainXujjBkJslGQXJpi5o2dQl9p1fyEAmWcCSQfATYIjENL+TWd 3H/gk/WepXzWmZIwuDXI1eXstolllD+dslDxCAx81CPzeHYzznuYVaCWzW0pOw== 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=1776121836; 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=8XdkFQWehZD/JwLC4Zi9Zsfqcdy9wRDJwNfap4970Ck=; b=LmwKbIdKOXCVcWztKVp4cR2hIFl3ch5iKC4u7JrB3MiylULzz362yPEXS6+HNsQA0AdyZ0 REd0b27SF5fJHYtZ5Zje6yot3NSt6yYXMEViWB+rwAy6BavV6FNF//8Yg69xub/mBw+Rk6 Qt35N46qWyuIK6rZXrqYiTzZAjU3JO5rZ5vMKXVuP0e0uxbkNvR88uDpriM62q9O21Kxwy 7V8o/qLhC9vR/ICR/CMsEQm56FkpVl00qJ7DDPvoiZ2TG35cSDX+Kte5LGL6eyiS9qmIVE x5EmktQ+rCNmvd4JrQDbfie7Q/E9RnsvFwdsr295ibxqeJ2yPhXFo9hN9xr78A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjn85g1Lz8KP for ; Mon, 13 Apr 2026 23:10:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27474 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: d9b4d144690a - Create tag vendor/Linux/rtw88/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/rtw88/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: d9b4d144690a448ea45c8a6e4c5cfe7b06fe9938 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:36 +0000 Message-Id: <69dd77ec.27474.3ff264aa@gitrepo.freebsd.org> The annotated tag vendor/Linux/rtw88/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/rtw88/torvalds-v7.0 tag vendor/Linux/rtw88/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:49 +0000 rtw88: update Realtek's rtw88 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 29163571ee4d00c3f15d26136c73587b3c537cff Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:26:11 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:26:11 +0000 rtw88: update Realtek's rtw88 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:10:42 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 4fvjnG6wBWz6WwbM for ; Mon, 13 Apr 2026 23:10:42 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvjnG4h0tz3LZY for ; Mon, 13 Apr 2026 23:10:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776121842; 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=v9mXWTZn4/dvY3RwFQuBWF5cCp9choYSj1RNhR5kyHA=; b=eHfKGGwcMkUvSCPrLicUV7pwkLR/vI8432jeXnhnN3lxbc51PscWLg4em2PK/OO9Ir2yp/ HkwYH2WgA8XuCQpM/tMfIzFAPFzM02v7S+p18GGbWOFNT7kDUEJCYW2wbKSyjpegedRBnp HufW91KyMO6dimZkSApHoNmGQDaMN5e9d0huKEbbT/tsRb2rlIlk/3DHPJNRanooHhBuoE T+Nvg19gqtPiSEfSqMYFAzFtyHV9tvior3PfqcCrRVqi2V2qLZ+i/SNVgoIgPu353PxdIx VYKqWBCZXODadlcrS/JvOiXCwbl6bdg0zszs2HkRu1SsDLp4TQetJhKTv5TfCw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776121842; a=rsa-sha256; cv=none; b=OeyOB5D7hY7kwv8LPdgJH89rZxQS+2O6xTcpM4lKfXjSzGd9lagRsWr+OhPl1kgL4jEoIr GZSkNHS4wGQwMxT+J4gCpWIiVs/HU6RbZn44GCB8ZyNeov0Ij4hz6cLGbgK63E//4q31E8 ftxZav0vpp/1Tlp91YiHhzBjX6Df+sbPwlYkFWiiKBcwhVdViBkp+G3UvqoTNddJWV2Imj 0U8QD+pEJr/whAVYxMkE/lDKNnyxTXLUTfyx+kdBUaRkbKINPv3CKdEvtDVtHoKyktvM4J MRrpBeA6tGqQcbuJ4cc1KvQmjltsfyfPVIGOszyMLG3dNv7hPKUdgisz0jMkIQ== 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=1776121842; 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=v9mXWTZn4/dvY3RwFQuBWF5cCp9choYSj1RNhR5kyHA=; b=JVIrUESuu9qxM4OEaoeeEWRN+d/NVljWS4c9NfP5LERNIWzSNUwa8pf1XQY6OFvzp96O7s RbJqiN230DDC3lUzMUPjT673GWxMR+pJrY2IcBgKLBUL6HB2PzlD4rHir8RFGU0gCQuAxv GdQbtu/y5TSiqPix0S2sZEtPvrZG2Ggc5iuTqtPXhpruSJ8Ae1lVJmioWEHtgFB3ljvCJj 3X1ME+dQx0yWJ8UKB8xkh02L2PGLiaLJNbzokc1gHw58IFGzvr6UVwBIKJbxKrSWspge5e ty+xS1/85GN2LLvrq3TnDfRrI2zBcFT3aPGyAnonabn+Nm/+7gb5DPCAkQ4a1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvjnG49G9z8fD for ; Mon, 13 Apr 2026 23:10:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 277b4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:10:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org From: Bjoern A. Zeeb Subject: git: 6d01cd552d64 - Create tag vendor/Linux/rtw89/torvalds-v7.0 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: bz X-Git-Repository: src X-Git-Refname: refs/tags/vendor/Linux/rtw89/torvalds-v7.0 X-Git-Reftype: annotated tag X-Git-Commit: 6d01cd552d641bc0e0231da7f5fbdbf928d30626 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:10:42 +0000 Message-Id: <69dd77f2.277b4.515d0982@gitrepo.freebsd.org> The annotated tag vendor/Linux/rtw89/torvalds-v7.0 has been created by bz: URL: https://cgit.FreeBSD.org/src/tag/?h=vendor/Linux/rtw89/torvalds-v7.0 tag vendor/Linux/rtw89/torvalds-v7.0 Tagger: Bjoern A. Zeeb TaggerDate: 2026-04-13 23:01:49 +0000 rtw89: update Realtek's rtw89 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation commit 777767fb72f8fdc7a20023ca89d7a28edf3e26c1 Author: Bjoern A. Zeeb AuthorDate: 2026-04-13 22:26:15 +0000 Commit: Bjoern A. Zeeb CommitDate: 2026-04-13 22:26:15 +0000 rtw89: update Realtek's rtw89 driver This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation From nobody Mon Apr 13 23:34:13 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 4fvkJV4ZWxz6YT8h for ; Mon, 13 Apr 2026 23:34:18 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fvkJV3ydJz3Ntp for ; Mon, 13 Apr 2026 23:34:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776123258; 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=mU5lyDrozgEwuclXJPAOoFeACYsRGClreBFstSY/gPU=; b=rv+OxgLYebj5Wpg0pRctc2xa76UL8VDxJYvMt8b3lLYrXe2VFWpZUtd7JHElZL/DTLYSNe a+tIrR/+s8c5feSZQx77SciPp3KDRGOPQaOCrsfJU6gMcm+SPCaMV+CPK/uhbhqtY3JebO qjf5pDOOUnZ/0gge1WBYOdSdrbdujMOwbz8m99ALjlqs6xA6gCB16NvJfi+G/arQ9ifkuj LdDc768J+jSnau2Ru8PscKErTuuz96+OSy2Q+Ma6zhVdw4Ihsdlxbv1qz7H9xLHyucRLcE aRp6tr5q7gdL7CYWkkqZuyy6a8TaMmTIF3sBYjmHVWakwAEs8g6MGyR0hjEwBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776123258; a=rsa-sha256; cv=none; b=Oz9gib4ctk2h6qu1jL6nC0+786++LV4bnjTdyfj9Vgv+o6Uty5hlIBI5mfdSsztq0eoxUR EL98Fa6ALzY/03pceQHSH58S1gFpYtZPlQB7KyH8rKxK1i9r8esAjxyn02eI3TwJBntfqw 1mnC2RnXU8qQszTda22oCJhCoYU960BKeQogTXroHzVQIT35FS8+fyD2kuCntoxhOeNbSa iIDqTvHkisLdgrLHgCVc69krY84jOu863D6F9ylba6drmF3Dqjhqhy2/L3eGpNAiZNAiar GJzSIi8/8lUH7pnhmelT3RUu0r/Yt9CXez7gohSetPsTyKuNXKYBO02Xupm4ug== 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=1776123258; 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=mU5lyDrozgEwuclXJPAOoFeACYsRGClreBFstSY/gPU=; b=LM3tFOYLzy0uMVv2rD28AG4Zd92+SwcMSo9Jz8/11NoOOFt2b22PDNg7FQjmY5bjRf5OcR 0B6gr4A/WU/zjVIv1CuOnXBZ2kBc8XPLP9RjyAdDLiQF7fa8zLmWgUlNbRjRDwjPKqaTfV BzlhJTWqzvV0SLh59mxNn+vvD5G0myPxufsLgzTcA1Ol/d/eziOMzPY3d12dcye7Sm6Rc3 DYIf1IjxWEeAVyDlPMtdlmdTBj0g/fvliv+Vodgi9oJRvqsG2YJEBcs/UjYg2S7Wfhlc1j 6fNDGtTkNC8JywLsXO3kBeFxGPITfoQsfts9v2S2bcFkfX6TE6LaX32VbINaAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fvkJV3Pg3z9LG for ; Mon, 13 Apr 2026 23:34:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 326f6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 13 Apr 2026 23:34:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 2b954770ddd7 - main - nvme: Use passed in max_pages. 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: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2b954770ddd7a4246c2100373d86ef5316becd81 Auto-Submitted: auto-generated Date: Mon, 13 Apr 2026 23:34:13 +0000 Message-Id: <69dd7d75.326f6.1090f913@gitrepo.freebsd.org> The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=2b954770ddd7a4246c2100373d86ef5316becd81 commit 2b954770ddd7a4246c2100373d86ef5316becd81 Author: Warner Losh AuthorDate: 2026-04-13 23:30:24 +0000 Commit: Warner Losh CommitDate: 2026-04-13 23:33:13 +0000 nvme: Use passed in max_pages. Noticed by: jhb Sponsored by: Netflix --- sys/dev/nvme/nvme_ctrlr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/nvme/nvme_ctrlr.c b/sys/dev/nvme/nvme_ctrlr.c index 447a824df8be..753a8b380a75 100644 --- a/sys/dev/nvme/nvme_ctrlr.c +++ b/sys/dev/nvme/nvme_ctrlr.c @@ -1364,7 +1364,7 @@ nvme_user_ioctl_req(vm_offset_t addr, size_t len, bool is_read, npages = nvme_page_count(addr, len); if (npages > atop(maxphys)) return (EINVAL); - if (npages > NVME_MAX_PAGES) + if (npages > max_pages) upages_us = malloc(npages * sizeof(vm_page_t), M_NVME, M_ZERO | M_WAITOK);