if_vxlan(4): Fix panic by validating unused drvspec values
Add validation for unused parameter values in the gap between
VXLAN_PARAM_WITH_LOCAL_ADDR4 and VXLAN_PARAM_WITH_LOCAL_ADDR6 to prevent
panics.
PR: 297151
Reported by: Robert Morris <rtm at lcs.mit.edu>
Reviewed by: markj
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D58552
(cherry picked from commit c4d7745cd90fc99af3cbccfda7e11798ea7d187b)
net/ucx: Fix VFS inotify watch on FreeBSD
IN_IGNORED is generated when a watch is removed and should not be
included in the inotify_add_watch request mask. FreeBSD rejects that
mask with EINVAL.
Remove the FreeBSD error workaround, which returned UCS_OK and caused
the VFS thread to retry in a tight loop.
PR: 296182
Reported by: thierry
Reviewed by: thierry (mentor),
Generic Rikka <rikka.goering at outlook.de> (maintainer)
Tested by: thierry (mentor),
Generic Rikka <rikka.goering at outlook.de> (maintainer)
Approved by: thierry (mentor)
nullfs: close a race when syncing inotify flags from the lower vnode
After a bypassed VOP, nullfs mirrors the lower vnode's inotify state
onto the upper vnode. The flags were checked with lockless reads
before being updated with the asserting flag set/unset primitives, so
two threads syncing the same vnode concurrently (or a sync racing a
watch being established) could both decide to make the same change;
the loser then trips the "flags already set" assertion on an
INVARIANTS kernel. On other kernels the race is harmless.
Keep the lockless check as the fast path, but re-make the decision
under the vnode interlock before actually changing the flags.
Reproduced in a 4-CPU VM with one thread cycling an inotify watch on
a lower-filesystem file while several threads stat(2) the same file
through a nullfs mount: the unpatched INVARIANTS kernel panics under
this load, the patched kernel runs it to completion.
Fixes: f1f230439fa4 ("vfs: Initial revision of inotify")
[6 lines not shown]
libc: Add strfromd, strfromf, and strfroml per C23
strfromd(), strfromf(), and strfroml() are implemented directly
in terms of gdtoa. If a non-conforming format string is passed,
the string "EDOOFUS" is returned and errno set to EDOOFUS as an
extension.
Reviewed by: fuz
MFC after: 1 month
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2301
Signed-off-by: Faraz Vahedi <kfv at kfv.io>
msun: add asinpi, acospi, and atanpi
This commit implements the inverse half-cycle
trigonometric functions:
asinpi(x) = asin(x) / pi Eq. (1)
acospi(x) = acos(x) / pi
atanpi(x) = atan(x) / pi
Implemention details are contained in src/s_asinpi.c and
src/a_atanpi.c, where the details for acospi(x) appear in
the former.
*************
CAVEAT EMPTOR: The ld128 code has been only compiled. It has
not been tested for correctness due to lack of hardware.
*************
[125 lines not shown]
libc/merge.c: use memcpy() for copying
Currently mergesort() uses ICOPY_*() to copy data as four byte blocks
instead of one byte. However, this is only achievable when both size and
base arguments are aligned to four bytes.
Use of memcpy() is ideal as 1) it is cleaner and 2) the library will use
SIMD for copying when the hardware supports it. Compared to ICOPY_*(),
SIMD can support up to 64 bytes. When the SIMD-backed memcpy() find the
address is unaligned, it can first copy data up to the nearest aligned
address, and then use SIMD operations for faster transfer. Thus memcpy()
can give better performance than mergesort()'s own implementation.
This is benchmarked on amd64 where there isn't a SIMD-backed
implementation yet. However, the baseline implementation in assembly
already delivers better performance in unaligned cases although there is
some performance drops in aligned cases. The benchmark results and
script is available in the Phabricator review. Ideally, more performance
improvements will come when amd64 gets SIMD implementation of memcpy().
[5 lines not shown]
libutil++: Include <cerrno> in stringf.cc
stringf.cc uses errno and related macros without including <cerrno>.
Their availability is guaranteed only when the corresponding header
is included; transitive exposure is implementation-defined.
Modern libc++ has been progressively reducing incidental transitive
includes as part of its header removal policy (see LLVM libc++ Header
Removal Policy and D132284), making such dependencies brittle.
This change includes <cerrno> explicitly to make the dependency
well-defined. No functional or behavioural change intended.
Approved by: fuz
Signed-off-by: Faraz Vahedi <kfv at kfv.io>
Pull-Request: https://github.com/freebsd/freebsd-src/pull/2188
bhyve: tidy up bhyve_config.5
There are few warnings reported by mandoc -Tlint:
bhyve_config.5:255:31: WARNING: new sentence, new line
bhyve_config.5:257:43: WARNING: new sentence, new line
bhyve_config.5:422:2: WARNING: missing section argument: Xr nm_open
bhyve_config.5:469:24: WARNING: skipping no-space macro
bhyve_config.5:483:2: WARNING: wrong number of cells: 2 columns, 4 cells
bhyve_config.5:484:2: WARNING: wrong number of cells: 2 columns, 4 cells
bhyve_config.5:541:24: WARNING: skipping no-space macro
- "new sentence, new line" is a trivial formatting fix.
- "missing section": there is actually no nm_open() manual page,
so use .Nm instead of .Xr for it.
- "no-space macro": format without .Oc and .Ns, similarly to
how it is already done in bhyve.8 for VNC addresses.
- "wrong number of cells": also a trivial fix.
[6 lines not shown]
net-mgmt/netbox: Update to 4.6.7
Changelog:
Performance Improvements:
* Skip cached scope rebuild for sites and locations when scope fields
are unchanged
* Avoid extraneous database queries when fetching custom field data via
the GraphQL API
* Avoid an extra database query when including rack reservation units
via the GraphQL API
* Avoid extraneous database queries when fetching the IP address or
prefix family via the GraphQL API
Bug Fixes:
* Correctly evaluate IP availability for users whose permissions are
constrained by a custom field on a related object
* Filter circuit group assignments by member type to avoid displaying
assignments belonging to a virtual circuit with the same ID
[5 lines not shown]
net-mgmt/py-netutils: Update to 1.18.0
* Add new JINJA2 option and make it default to have a good out-of-box
experience when Jinja2-aware configuration sanitization is needed.
Changelog:
https://github.com/networktocode/netutils/releases/tag/v1.18.0
net-mgmt/netbox: Update to 4.6.7
Changelog:
Performance Improvements:
* Skip cached scope rebuild for sites and locations when scope fields
are unchanged
* Avoid extraneous database queries when fetching custom field data via
the GraphQL API
* Avoid an extra database query when including rack reservation units
via the GraphQL API
* Avoid extraneous database queries when fetching the IP address or
prefix family via the GraphQL API
Bug Fixes:
* Correctly evaluate IP availability for users whose permissions are
constrained by a custom field on a related object
* Filter circuit group assignments by member type to avoid displaying
assignments belonging to a virtual circuit with the same ID
[4 lines not shown]
math/deal.ii: fix with OCCT-8 + some modifications
- fix with OpenCascade-8.0.0 (primary goal);
- CGAL and Taskflow are detected as build dependencies;
- kokkos is now fixed;
- GMP and MPFR are used as lib dependencies;
- the port was linked both with BLIS and NETLIB: replace them by
OpenBLAS (note: qa still reports indirect linkage with BLIS and
NETLIB);
- switch to c++23.
PR: 296947
Reported by: yuri
Approved by: yuri (maintainer)
databases/rocksdb: add cmake config files
Also add dependencies on googletest and onetbb: when built outside
poudriere they are detected and compilation fails.
PR: 296732
Approved by: maintainer’s time-out