lib/msun: use the same algorithm for sw fmaf(3) as for fma(3)
This fixes rounding at the last bit for subnormals.
PR: 298260
Reviewed by: kib
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D59579
if_bridge: pull up only the headers bridge_pfil() inspects
bridge_pfil() pulled up min(m_pkthdr.len, max_protohdr) bytes. When the
mapped head is shorter than that and followed by an unmapped (M_EXTPG)
mbuf -- a sendfile(2) or KTLS segment from a member advertising
IFCAP_MEXTPG -- m_pullup() ran into it and dereferenced a NULL mtod(),
panicking the kernel.
Pull up the Ethernet header first, and the SNAP/LLC header only for an
802.3 frame. This is similar to pf and ip_output().
m_pullup() and m_copyup() asserted only the first mbuf; assert inside both
copy loops so the shape trips the check.
Fixes: c38abd64dbc1 ("if_epair: support IFCAP_MEXTPG")
Suggested by: markj
Reviewed by: markj, gallatin
Assisted-by: Claude Code (Fable 5, Opus 5)
if_bridge: count the drops on the fragmentation path
bridge_pfil() returned a fragmentation failure without counting it,
and bridge_fragment() dropped a chain on three allocation failures
without counting those either.
Count the first on the filtered interface and the others with
ips_odropped, which is what ip_fragment() uses for the same failure
and what bridge_fragment() already uses for its success case.
Reviewed by: gallatin
Differential Revision: https://reviews.freebsd.org/D59391
Assisted-by: Claude Code (Fable 5, Opus 5)
LinuxKPI: Run irq_work callbacks under RCU protection
Linux executes irq_work callbacks from an interrupt context that
provides implicit RCU read-side protection. LinuxKPI dispatches these
callbacks through a taskqueue, so provide equivalent protection
explicitly.
This prevents an RCU grace period from completing while an irq_work
callback is still using an RCU-protected object.
Suggested by: wulf
Tested by: JustAnotherHumanBeing
Signed-off-by: JustAnotherHumanBeing <oleglelchuk at gmail.com>
Pull Request: https://github.com/freebsd/freebsd-src/pull/2385
hid: Add Sony DualSense gamepad driver
Add a driver for the Sony PS5 DualSense controller (054c:0ce6)
providing gamepad input via evdev, lightbar RGB LED control, and
player indicator LEDs through sysctl.
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Reviewed by: ziaee, wulf
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D56345
games/polyglot: Mark DEPRECATED
- This software is obsolete[1] and the original master site is no longer
available
- Add an expiration date
- Bump PORTREVISION
[1] https://chessprogramming.org/PolyGlot#retirement
converters/simdutf: remove stray patch
This was left over after a wrong rebase (mid-air collission).
Fixes: 81f18785a4d12bf1d01751f5e54643cf9afe9443
Reported by: Einar Bjarni Halldórsson <einar at isnic.is>
PR: 298403
Event: EuroBSDcon Devsummit 2026
kobj: allow multiple inheritance with per-class softc
Add support for hierarchical softc layout so that a leaf class and each
of its base classes owns a private softc region inside a single
allocation.
device_get_softc_class(dev, cls) returns a pointer to the softc that
belongs to the requested class. The classic device_get_softc() still
returns the leaf softc and remains fully compatible with existing
drivers.
Existing drivers are unaffected; they simply obtain a slightly larger
softc block when they inherit from base classes.
MFC after: 2 months
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D59115
bsd.sites.mk: use static CDN to download rust crates
static.crates.io is the recommended upstream download
path. This avoids "403 Forbidden" rate limiting results
when trying to download crates too fast. This also
seems to improve download speeds/latency.
As per https://crates.io/data-access#crate-content,
> Crates can be downloaded directly from the crates.io CDN
> [...]
> No rate limits apply to static.crates.io at present.
And as per https://crates.io/data-access#api,
> you are welcome to use the crates.io API provided you abide by the following limits:
> * A maximum of 1 request per second, and
> * A user-agent header that identifies your application.
[2 lines not shown]