callout: optionally spread callouts to all CPUs
By default, if the caller has not used one of the _on() or _cpucpu()
variants of the callout API, the system assigns the callout to CPU0.
Having most callouts running on CPU0 can be problematic in terms of
the amount of CPU time spent executing callouts can have an unfair
impact to CPU0, and a critical callout (like lacp_tick) is certain
to land on the same CPU as everything else, so it is more likely
to be delayed.
This change introduces a change to callout_init* where if
kern.callout_spread is non-zero, callouts initialized after SMP startup
are distributed among CPUs.
This is left as disabled by default, as it may reveal any latent
synchronization bugs that were previously hidden, e.g., two callout handlers
which were always accidentally serialized against each other before may now
run concurrently. It also may cause a slight increase in power consumption
[6 lines not shown]
ip6_forward: Free the ICMPv6 copy on all error paths
ip6_forward() keeps a copy of the start of the packet in case it has
to send an ICMPv6 error. Every exit must either pass the copy to
icmp6_error() or icmp6_redirect_output(), or free it. Three exits did
neither and leaked the copy:
- the destination scope check, when a packet would leave the zone of
its destination address;
- a packet that a pfil hook redirected to a local address, which is
queued for local input;
- a packet whose checksum has to be computed here and whose last
header offset is not valid.
Free the copy in these three cases.
Reviewed by: tuexen, pouria
Fixes: 8a006adb2441 ("Add support for IPv6 to ipfw fwd...")
Fixes: bcb298fa9e23 ("sctp, tcp, udp: improve deferred computation...")
[3 lines not shown]
if_geneve: Read the outer IP header from the start of the packet
The offset passed to geneve_udp_input() points at the UDP header,
which for IPv6 comes after any extension headers.
The outer header is always at the start of the mbuf.
Reported by: llm-postcr
Fixes: e44d2e941e8e ("if_geneve: Add Support for Geneve (RFC8926)")
science/code_saturne: Fix build with TeX Live 2026
LaTeX 2025-11-01, shipped with TeX Live 2026, no longer ignores \par
inside array cells, so the blank lines in some displayed equations of
the theory manual now stop pdflatex with "Missing $ inserted". Remove
the blank lines, since they have no effect on the typeset output.
Approved by: blanket, build fix
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61427
dns/dnsjava: fetch the upstream distributed jar
This removes the build dependency on openjdk8.
A follow up step is to make this port fetch dnsjava 3.X from maven.
See: https://github.com/apache/jmeter/issues/6400
Approved by: no maintainer
vmm: Route MMIO-to-MMIO MOVS by GPA
emulate_movs() uses the memread and memwrite callbacks selected from
the faulting GPA for both operands of an MMIO-to-MMIO MOVS. A guest
can therefore make the local APIC handler write to a GPA outside the
APIC page, which trips the offset assertion in vlapic_write() on
INVARIANTS kernels.
Dispatch each MMIO read and write according to its GPA. This allows
MOVS between in-kernel devices. During in-kernel emulation, return
EINVAL if an MMIO operand lies outside those devices' ranges.
Reported by: llm-postcr
Reviewed by: markj
MFC after: 1 week
Sponsored by: Alchemilla Ventures Private Limited
Differential Revision: https://reviews.freebsd.org/D61495
ure: Initialize ifm_active in ure_ifmedia_sts
Most ure(4) devices use mii; 8156 and 8156B do not and have special
cases throughout the driver.
ifmedia_ioctl() sets ifmr->ifm_active to ifm_cur->ifm_media before
calling the status callback. The 8156 case in ure_ifmedia_sts ORs in
the subtype and duplex flags to the existing value, which may result in
garbage values.
Instead, start by setting ifm_active to just IFM_ETHER before ORing in
other bits.
Reported by: llm-postcr
Reviewed by: kbowling, pouria
Fixes: d4cf41a99b40 ("Add support for RTL8153B, RTL8156 and RTL8156B to if_ure(4).")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61158
cad/ldview: Update 4.6 => 4.7, switch Qt 5 => 6
+ Add LICENSE_COMB=dual for added MIT license
* Grep and patch out wrong paths across all files, not only few ones
* Mark as PIE_UNSAFE
Approved by: yuri@ (maintainer)
Differential Revision: https://reviews.freebsd.org/D60159
nuageinit; Skip SSH keys and doas/sudo if adduser fails
Previously we would still try to add SSH keys after a failed adduser,
which would result in an uncaught Lua error, causing the remainder of
the setup to be skipped.
Reported by: llm-postcr
Reviewed by: dtxdf, bapt
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61441
kern_revoke: remove always UIO_USERSPACE pathseg argument
In FreeBSD and CheriBSD pathseg was always UIO_USERSPACE and when I
extracted the patch for FreeBSD, I failed to propogate it to NAMEI.
Since it's always the same, remove it as needless generality.
Reported by: netchild
Sponsored by: Innovate UK
Fixes: 7273d80ba18c ("vfs_syscalls.c: add kern_ and user_ implementations")
clock_gettime: Add capability mode check
clock_gettime is permitted in capability mode, and it calls get_cputime
if clock_id is negative. get_cputime did not check the target pid in
capability mode.
Reported by: llm-postcr
Reviewed by: markj, Osvaldo Janeri Filho <ojanerif at amd.com>
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D61469
hwpmc: switch in process PMCs on a thread's first run
A new thread starts in fork_exit(), not mi_switch(), so its PMCs are
not loaded until its next context switch. Call the switch-in hook
there.
Reviewed by: kib, Osvaldo Janeri Filho <ojanerif at amd.com>, mhorne
MFC after: 1 week
Sponsored by: Advanced Micro Devices, Inc.
Differential Revision: https://reviews.freebsd.org/D60565
lan867xphy: Add silicon rev D0 configuration
Apply hardware revision D0 configuration from Microchip AN1699
(Revision G). The LSCTL (0x0012) write is deferred until link state
reporting is implemented.
Sponsored by: The FreeBSD Foundation
Sponsored by: Microchip (Hardware)
Differential Revision: https://reviews.freebsd.org/D61269
mail/rspamd: Update to 4.3.0
Feature release. Adds SMTPUTF8 address syntax checks
(draft-ietf-mailmaint-smtputf8-syntax), explicit phishing rewrite trust
maps, and new symbols for truncated or unreadable archive, OOXML, SVG
and PDF content. HTML, CSS and URL parsing follow browsers more
closely, and the release carries many milter, Redis, DNS, SPF, DMARC,
DKIM and ARC fixes, among them a worker abort on an HTTP request with a
header line without a colon.
Incompatible changes: URL mismatches are scored separately from
phishing, SPF records are evaluated in term order, DKIM rejects
duplicated tags, l=0 and RSA keys under 1024 bits, and symbol options
are stored verbatim and percent-encoded only on output.
ChangeLog: https://github.com/rspamd/rspamd/blob/4.3.0/ChangeLog
multimedia/jellyfin: Update to 12.4
- Depend on multimedia/jellyfin-ffmpeg instead of multimedia/ffmpeg and
point the rc script at its ffmpeg binary (jellyfin_ffmpeg, set it to an
empty string to fall back to the PATH lookup)
- Depend on devel/libunwind-devel, which is what the bundled .NET runtime
is linked against
- Pass --allow-remote to npm, which is required since npm 12 to fetch the
classlist.js tarball dependency
PR: 298699, 298827
graphics/libskiasharp: Update to 119
Update to the SkiaSharp 3.119 native library. multimedia/jellyfin 12.4
uses SkiaSharp 3.119.4, which needs the matching native library.
PR: 300147