FreeBSD/src 07a3501sys/net if_loop.c

loopback: fix use-after-free

Once we hand an mbuf over to netisr_queue() we may no longer access it.
Save the length before the call so we can use it to increment counters
afterwards.

Fixes:          956acdce0505 ("loopback: Account for packet drops")
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+3-1sys/net/if_loop.c
+3-11 files

FreeBSD/src d5ca00fsys/netpfil/pf pf_ioctl.c

pf: do not allow flags to be changed with securelevel set

With securelevel set (for pf that means >= 3) we're expected to reject
rule changes. However, we allowed interface flags to be changed, which
would allow 'set skip on X' to be changed.

Remove DIOCSETIFFLAG and DIOCCLRIFFLAG from the securelevel whitelist.

MFC after:      1 week
Reported by:    cyberkittens
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+0-2sys/netpfil/pf/pf_ioctl.c
+0-21 files

FreeBSD/src 9933bdcsys/netlink netlink_generic.c netlink_ctl.h, sys/netpfil/pf pf_nl.c

pf: only allow a subset of netlink calls when securelevel is set

Extend the genl_cmd struct to allow calls to also carry a securelevel.
If that's set compare the current securelevel to only allow the call if
the level is lower than that.

If no value is specified continue to allow calls in any securelevel,
as before.

This allows us to easily implement the same securelevel restrictions for
pf as we have for the corresponding ioctls.

Reviewed by:    glebius
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D56390
DeltaFile
+47-0sys/netpfil/pf/pf_nl.c
+7-0sys/netlink/netlink_generic.c
+3-0sys/netlink/netlink_ctl.h
+57-03 files

FreeBSD/src adb16cdsys/contrib/dev/rtw89 core.c

rtw89: fix mismerge

Due to FreeBSD-specific code it seems a code update was not applied
to the FreeBSD part during the v6.17 driver update.
Add the missing lines.

Sponsored by:   The FreeBSD Foundation
MFC after:      3 days
Fixes:          b35044b38f74c
DeltaFile
+2-0sys/contrib/dev/rtw89/core.c
+2-01 files

FreeBSD/src c1df496share/examples Makefile, share/examples/sound mmap.c

sound examples: Add mmap example

This example opens separate OSS capture and playback channels in mmap
mode, places them into a sync group, and starts them together so both
ring buffers advance on the same device timeline. It then monitors the
capture mmap pointer with SNDCTL_DSP_GETIPTR, converts that pointer into
monotonic absolute progress using the reported block count, and copies
newly recorded audio from the input ring to the matching region of the
output ring.

The main loop is driven by an absolute monotonic frame clock rather than
a fixed relative usleep delay. Wakeups are scheduled from the sample
rate using a small frame step similar to the SOSSO timing model, while
the audio path itself stays intentionally simple: just copy input to
output, with no explicit xrun recovery or processing beyond ring
wraparound handling.

MFC after:      1 week
Reviewed by:    christos

    [3 lines not shown]
DeltaFile
+297-0share/examples/sound/mmap.c
+1-0share/examples/Makefile
+298-02 files

FreeBSD/src c8cd633sys/dev/dpaa2 dpaa2_ni.c dpaa2_rc.c

dpaa2: ni: add more stats and link information

In addition to the locally generated statistics counters, dpaa2 ni
provides a larger set of counters than we currently export via
sysctl.  Add (most of) the missing counters and descriptions.
Around Page 3/4 there are some things left to do if we want.
Also the manual was not clear on the descriptions of 3/0 and 3/1.

The second half of the change adds another sysctl note which exports
the link-state, speed, and capabilities set as a text-blob.  This is
especially interesting in case the "ni" stops passing packets.
From what I have found in that case the (internal) link state of the
ni goes DOWN but we do not see an interrupt for a link-state change.

Being able to diagnose the state helps to (manually) fix it for now
by changing the media status to 10BaseT or none and then back to auto.
That usually brings the internal link state back UP.

MFC after:      3 days

    [3 lines not shown]
DeltaFile
+113-16sys/dev/dpaa2/dpaa2_ni.c
+5-4sys/dev/dpaa2/dpaa2_rc.c
+2-3sys/dev/dpaa2/dpaa2_ni.h
+120-233 files

FreeBSD/src 4029e76usr.sbin/bsdinstall bsdinstall.8

bsdinstall.8: Document DISTRIBUTIONS defaults correctly

Some targets override the default value of DISTRIBUTIONS.
Document that in the manual page.

Reported by:    Nia Alarie <nia at NetBSD.org>
Reviewed by:    jlduran
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56528
DeltaFile
+22-2usr.sbin/bsdinstall/bsdinstall.8
+22-21 files

FreeBSD/src 43caeeasys/netinet ip_fastfwd.c, sys/netinet6 ip6_fastfwd.c

routing: Make ip[6]_tryforward() FIB-aware for local traffic

`ip_tryforward()` and `ip6_tryforward()` checks whether the destination
address is local or not without considering if it belongs to the current FIB.
If the destination is local but not in our FIB, forward it instead
of returning it to ip_input().

PR:             292319
Reviewed by:    zlei
MFC after:      1 week
MFC to:         stable/15
Differential Revision: https://reviews.freebsd.org/D56353

(cherry picked from commit bf41d86df0d9dc4a1342c579f4e72db3c66b3443)
DeltaFile
+2-2sys/netinet/ip_fastfwd.c
+1-1sys/netinet6/ip6_fastfwd.c
+3-32 files

FreeBSD/src 5bb7415etc/mtree BSD.usr.dist

mtree: stop creating /usr/share/doc/ncurses

In base 68ad2b0d7af2a the ncurses html documentation was removed, and
entries added to ObsoleteFiles.inc to get rid of /usr/share/doc/ncurses,
but the directory was still being re-created via BSD.usr.dist. Remove it
from there too.

Fixes:          68ad2b0d7af2a
MFC after:      1 month

(cherry picked from commit 212272a43767c3d7be3ddb87605612f6164774c1)
DeltaFile
+0-2etc/mtree/BSD.usr.dist
+0-21 files

FreeBSD/src 975e360lib/geom/cache gcache.8, lib/geom/eli geli.8

geom manuals: Clarify units

The gpart manual says that sizes are specified in blocks, unless an SI
unit suffix is provided. This confuses new operators because GEOM uses
binary bytes, a large difference at modern storage pool sizes. Rewrite
suffixes in all GEOM manuals to consistently clarify this, matching what
we and the rest of the industry have been doing in other documentation.
While here, use non-breaking spaces between numbers and units, unless
they are already written with a hyphen.

MFC after:              3 days
Reviewed by:            fuz
Reported by:            bbaovanc <bbaovanc at bbaovanc.com>
Differential Revision:  https://reviews.freebsd.org/D56534
DeltaFile
+29-23lib/geom/part/gpart.8
+4-4lib/geom/eli/geli.8
+4-4sbin/ggate/ggatec/ggatec.8
+2-2sbin/ggate/ggated/ggated.8
+2-2lib/geom/cache/gcache.8
+41-355 files

FreeBSD/src 374548esys/fs/fuse fuse_vnops.c fuse_node.c

fusefs: better handling for low-memory conditions

Under conditions of low memory, getblk can fail.  fusefs was not
handling those failures very systematically.  It was always using
PCATCH, which appears to have been originally copy/pasted from the NFS
client code, but isn't always appropriate:

* During fuse_vnode_setsize_immediate, which can be called from many
  different VOPs and from the vn_delayed_setsize mechanism, remove
  PCATCH.  Some of these callers cannot tolerate allocate failure.

* In fuse_inval_buf_range, don't assume that getblk will always succeed.

* When calling fuse_inval_buf_range from VOP_ALLOCATE,
  VOP_COPY_FILE_RANGE, or VOP_WRITE (with IO_DIRECT), return EINTR if
  the allocation fails.

* When calling fuse_inval_buf_range from VOP_DEALLOCATE, remove PCATCH.
  This VOP must not fail with EINTR.

    [7 lines not shown]
DeltaFile
+17-7sys/fs/fuse/fuse_vnops.c
+1-5sys/fs/fuse/fuse_node.c
+18-122 files

FreeBSD/src c8c9324include stdbit.h, sys/sys stdint.h

include/stdbit.h: declare size_t, (u)int*_t, and (u)int_least*_t

These are required by ISO/IEC 9899:2024 § 7.18.1 ¶ 1 but were forgotten
in my initial work.

The current approach leaks intptr_t, uintptr_t, intmax_t, and uintmax_t
through <sys/_stdint.h>.  This could be avoided using a more complicated
approach if desired.

PR:             294131
Fixes:          6296500a85c8474e3ff3fe2f8e4a9d56dd0acd64
Reported by:    Collin Funk <collin.funk1 at gmail.com>
Reviewed by:    imp
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56515
DeltaFile
+21-1include/stdbit.h
+3-0sys/sys/stdint.h
+24-12 files

FreeBSD/src 1b8e5c0sys/amd64/amd64 mp_machdep.c

amd64: fix INVLPGB range invalidation

AMD64 Architecture Programmer's Manual Volume 3 says the following:

> ECX[15:0] contains a count of the number of sequential pages to
> invalidate in addition to the original virtual address, starting from
> the virtual address specified in rAX. A count of 0 invalidates a
> single page. ECX[31]=0 indicates to increment the virtual address at
> the 4K boundary. ECX[31]=1 indicates to increment the virtual address
> at the 2M boundary. The maximum count supported is reported in
> CPUID function 8000_0008h, EDX[15:0].

ECX[31] being what we call INVLPGB_2M_CNT, signaling to increment the
VA by 2M.

> This instruction invalidates the TLB entry or entries, regardless of
> the page size (4 Kbytes, 2 Mbytes, 4 Mbytes, or 1 Gbyte). [...]

Combined with this, my interpretation of the current code is: if

    [20 lines not shown]
DeltaFile
+6-19sys/amd64/amd64/mp_machdep.c
+6-191 files

FreeBSD/src 324b3c2lib/libsys membarrier.2

membarrier.2: document MEMBARRIER_CMD_GET_REGISTRATIONS

Reviewed by:    markj, Ricardo Branco <rbranco at suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
DeltaFile
+6-0lib/libsys/membarrier.2
+6-01 files

FreeBSD/src aaa1039sys/kern kern_membarrier.c, sys/sys membarrier.h

membarrier(2): implement the MEMBARRIER_CMD_GET_REGISTRATIONS command

Reported by:    Ricardo Branco <rbranco at suse.com>
Reviewed by:    markj, Ricardo Branco <rbranco at suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
DeltaFile
+17-3sys/kern/kern_membarrier.c
+3-0sys/sys/membarrier.h
+20-32 files

FreeBSD/src 950fd59sys/kern kern_membarrier.c

membarrier(2): use atomic for lockless read of curproc->p_flag2

Reviewed by:    markj, Ricardo Branco <rbranco at suse.com>
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56507
DeltaFile
+7-6sys/kern/kern_membarrier.c
+7-61 files

FreeBSD/src 9b844b4libexec/rtld-elf rtld.c

rtld: fix processing of preloaded z_initfirst objects

After we found some preloaded z_initfirst object, we must process till
the end of the preload list still, not stopping on the first found
object.

Reported by:    des
Reviewed by:    des, markj, siderop1 at netapp.com
Fixes:  78aaab9f1cf359f3b7325e4369653f6b50593393
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D56466
DeltaFile
+5-0libexec/rtld-elf/rtld.c
+5-01 files

FreeBSD/src 4b79ee8usr.sbin/ctld ctld.cc

ctld: Update nchildren directly in wait_for_children

This results in slightly less duplicated code.

Reviewed by:    asomers
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56526
DeltaFile
+12-16usr.sbin/ctld/ctld.cc
+12-161 files

FreeBSD/src 7bb2b38usr.sbin/ctld ctld.cc ctld.hh

ctld: Support multiple physical ports in a target

PR:             293076
Reported by:    Ken J. Thomson <thomsonk at yandex.com>
Reviewed by:    asomers
Fixes:          969876fcee57 ("ctld: parse config file independently of getting kernel info")
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D55767
DeltaFile
+37-35usr.sbin/ctld/ctld.cc
+5-6usr.sbin/ctld/ctld.hh
+2-2usr.sbin/ctld/conf.cc
+1-1usr.sbin/ctld/uclparse.cc
+1-1usr.sbin/ctld/parse.y
+1-1usr.sbin/ctld/conf.h
+47-466 files

FreeBSD/src e56687busr.sbin/ctld ctld.cc

ctld: Return from the inner "main" loop on EINTR

This ensures that child processes are reaped in the outer loop in
main().

PR:             294035
Reviewed by:    asomers
Fixes:          66b107e82b2f ("ctld: Use kevent(2) for socket events rather than select(2)")
Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D56525
DeltaFile
+1-1usr.sbin/ctld/ctld.cc
+1-11 files

FreeBSD/src 505f381sys/dev/cxgbe/nvmf nvmf_che.c

nvmf_che: Don't leak a socket if an error occurs finalizing the socket

If soreserve() or sosetopt() (to set TCP_NODELAY) fails after claiming
the socket from the file descriptor, explicitly close the socket
before returning failure.

Sponsored by:   Chelsio Communications
Differential Revision:  https://reviews.freebsd.org/D55493
DeltaFile
+1-0sys/dev/cxgbe/nvmf/nvmf_che.c
+1-01 files

FreeBSD/src f49f61fsys/net iflib.c

iflib: Add a missing CURVNET_RESTORE() in the error path

Signed-off-by:  Peter Ganzhorn <peter.ganzhorn at gmail.com>
Reviewed by:    zlei
Fixes:          6d49b41ee84b iflib: Add pfil hooks
MFC after:      3 days
Pull Request:   https://github.com/freebsd/freebsd-src/pull/2150
DeltaFile
+3-1sys/net/iflib.c
+3-11 files

FreeBSD/src 0d16792lib/geom/part geom_part.c

geom_part: Restore the human readable format of size

Prior to the change 4f809ffec69c, the sizes are formated by
humanize_number(3) with the flag HN_DECIMAL, which displays the result
using one decimal place when it is less than 10. That is more accurate
and useful. Add equivalent field modifier hn-decimal to xo_emit() to
restore the previous behavior.

Reported by:    Mark Millard
Reviewed by:    js
Fixes:          4f809ffec69c gpart: add libxo support for "show" subcommand + man page updates
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D56514
DeltaFile
+4-4lib/geom/part/geom_part.c
+4-41 files

FreeBSD/src ffad36esys/netpfil/pf pf.c

pf: Use MTX_DUPOK to initialize hash chain mutexes

pf_udp_mapping_insert() may lock more than one row at a time.

Fixes:          cd5ff4e841fb ("pf: use hashalloc(9) for key, id, src-node and udp-endpoint hashes")
Reviewed by:    kp
Differential Revision:  https://reviews.freebsd.org/D56501
DeltaFile
+1-0sys/netpfil/pf/pf.c
+1-01 files

FreeBSD/src 019a487sys/contrib/openzfs/cmd/zpool zpool_vdev.c

zfs: Fix the build on 32-bit platforms

Fixes:          d8fbbd371ca1 ("zfs: merge openzfs/zfs at 1644e2ffd")
Reported by:    Jenkins
DeltaFile
+1-1sys/contrib/openzfs/cmd/zpool/zpool_vdev.c
+1-11 files

FreeBSD/src 9592b08tests/sys/aio aio_test.c

tests/aio: Avoid skipping zvol tests

The underlying bugs which caused them to be flaky are now fixed.

PR:             258766
DeltaFile
+0-5tests/sys/aio/aio_test.c
+0-51 files

FreeBSD/src c348c92lib/libsys ntp_adjtime.2

ntp_adjtime.2: Increase visibility

+ s/ntp/ntpd/ for correctness + apropos results in document description
+ silence a linter warning by escaping a period with a zero-width space

MFC after:      3 days

(cherry picked from commit b49b3ccd40bda02f530c679f23f42ba9e0e4b2e2)
DeltaFile
+3-3lib/libsys/ntp_adjtime.2
+3-31 files

FreeBSD/src 689a8b5share/man/man7 freebsd-base.7

freebsd-base.7: Break examples into subsections

Break the examples into subsections, so that we can have multi-step
examples.

MFC after:              3 days (to 15 only)
Discussed with:         ivy
Differential Revision:  https://reviews.freebsd.org/D55526

(cherry picked from commit 5f922bd20d81af4b5759b8f104d5c22ee3e5cd1b)
DeltaFile
+6-5share/man/man7/freebsd-base.7
+6-51 files

FreeBSD/src abde7feshare/man/man7 freebsd-base.7

freebsd-base.7: Add an example for unregistering

MFC after:              3 days
Reviewed by:            ivy, emaste
Discussed with:         bapt, des, emaste, ivy, phk, pi
Differential Revision:  https://reviews.freebsd.org/D55458

(cherry picked from commit 998d501ae61a3e3c800e6d102d8ab5253c7c1b91)
DeltaFile
+35-1share/man/man7/freebsd-base.7
+35-11 files

FreeBSD/src a5ac63fshare/skel dot.profile, usr.bin/apply apply.1

Bourne shell -> POSIX shell

The FreeBSD shell is a POSIX compatible shell. It evolved over several
decades from the Almquist shell, which was preceeded a decade before
that by the Bourne shell. Most readers today have never seen a Bourne
shell. If someone wants to learn to use our shell, they need to look for
tutorials on the POSIX shell. Align descriptions through out the tree
with this reality, consistent with it's manual and common parlance.

We made a similar change to the doc tree in b4d6eb01540fe.

MFC after:              3 days
Reviewed by:            carlavilla
Differential Revision:  https://reviews.freebsd.org/D56382

(cherry picked from commit dc140a9fc151f3717bce2157f49070daafa13ec0)
DeltaFile
+2-2usr.bin/fortune/datfiles/freebsd-tips
+2-2usr.bin/script/script.1
+1-1usr.sbin/adduser/adduser.8
+1-1share/skel/dot.profile
+1-1usr.bin/apply/apply.1
+1-1usr.bin/chpass/chpass.1
+8-86 files