e1000: Report 82571 packet buffer ECC errors
The 82571 PBA_ECC register contains a 12-bit count of packet buffer ECC
detections. The shared code enables single-bit correction, but neither
FreeBSD nor the DPDK base driver consumes the counter.
Sample it with the ordinary statistics timer, accumulate the value under
dev.em.N.memory_errors.detected_packet_buffer, and clear the hardware
counter while preserving correction and reserved register state. Do not
enable its shared interrupt: the register does not distinguish corrected
from uncorrectable events and does not provide a safe fatal recovery
policy.
Validated on a dual port 82571EB. Both functions reported zero after a
clean boot, and a controlled link down/up cycle left the counter at zero
while the management link recovered at 1 Gb/s without issue.
MFC after: 2 weeks
Sponsored by: BBOX.io
vdev: expose dtl_sm_blksz and standard_sm_blksz on Linux
Expose zfs_vdev_dtl_sm_blksz and zfs_vdev_standard_sm_blksz as module
parameters on Linux.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18952
zed: initialize pool_load before it is read
zfs_fm_recv() assigns pool_load only in the loop branch that also sets
pool_found, and reads it through timeval_earlier() under that same
flag, so the value is never actually used uninitialized. Nothing
local to either site says so, though, and cppcheck reports the read:
zfs_diagnosis.c:493:27: warning: Uninitialized variable: b->ertv_sec
Initialize it at the declaration so that holds unconditionally.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Alek Pinchuk <Alek.Pinchuk at connectwise.com>
Closes #18948
zpool: pass compatibility directory paths as format arguments
Two status messages concatenate ZPOOL_SYSCONF_COMPAT_D and
ZPOOL_DATA_COMPAT_D directly into gettext() string literals. Both
expand from SYSCONFDIR, a build-time -D, so the msgid xgettext sees
contains an unexpanded macro and cannot be translated. cppcheck
cannot parse the result either:
zpool_main.c:11004:30: error: There is an unknown macro here
somewhere. Configuration is required. [unknownMacro]
Pass them as %s arguments. The rendered output is unchanged.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Alek Pinchuk <Alek.Pinchuk at connectwise.com>
Closes #18947
[flang][PFT-to-MLIR] Do not wrap the DO of an OpenMP loop construct (#216280)
A DO attached to an OpenMP loop directive is driven directly into the
loop op by OpenMPLoopConstruct lowering, so folding it into an
scf.execute_region hides the iteration from that op and crashes lowering
when the loop body is unstructured.
Extend the wrappability check with isOmpLoopBody(), the OpenMP analogue
of the existing isAccLoopBody(): the immediate body DO, or one of the N
associated iterator DOs under collapse(N) / ordered(N), is not
wrappable. The shared parts of both checks -- collecting the enclosing
DO chain, evaluating a clause's loop count, and the depth test -- are
factored into helpers.
Co-authored-by: Claude
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
[VectorCombine] Fold deinterleave/interleave pairs (#211022)
Fold matched `vector.deinterleaveN` / `vector.interleaveN` pairs through
equivalent elementwise operation chains.
When every deinterleaved field is transformed by the same elementwise
chain, rebuild that chain at the original vector width and remove the
deinterleave/interleave pair.
This eliminates redundant shuffle-like operations and enables improved
SVE code generation on AArch64 targets.
---------
Co-authored-by: Benjamin Maxwell <benjamin.maxwell at arm.com>
secpolicy_zfs: add a note about the power of CAP_SYS_ADMIN
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
secpolicy_sys_config: only permit a global zone credential
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
secpolicy_zinject: only permit a global zone credential
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
secpolicy_nfs: remove, not used
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
ZTS: test secpolicy_zinject correctly limits namespace access
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
ZTS: test secpolicy_sys_config correctly limits namespace access
Sponsored-by: TrueNAS
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Rob Norris <rob.norris at truenas.com>
Closes #18959
[ASan][Darwin] Support gapless shadow layout for iOS 27.0
When the shadow can be placed entirely above app memory (as on the
new iOS 27.0 embedded VM layout, where debug memory pushes shadow
past kHighMemEnd), there is no need to split shadow into low/high
halves with a middle gap.
- Add kGaplessShadow (Apple-only) to detect this configuration.
- Teach InitializeShadowMemory to reserve one contiguous shadow
region and protect only the shadow-of-shadow when kGaplessShadow
is true, with CHECKs asserting the mapping preconditions.
- Update PrintAddressSpaceLayout to print the single-region layout.
rdar://167657399
[flang] - Call _FortranAAssignSimple instead of _FortranAAssign for intrinsic-type array assignments.
This patch adds support for calling _FortranAAssignSimple, a faster-path for array assignments.
`_FortranAAssignSimple` is called when ALL the following conditions are true:
1. Intrinsic element type (not derived type)
2. Matching ranks (no scalar-to-array broadcasting)
3. Non-volatile
4. Not polymorphic
5. Not explicit-length character
6. Not temporary LHS
Otherwise, uses `_FortranAAssign` (or specialized variants like `_FortranAAssignPolymorphic`, `_FortranAAssignExplicitLengthCharacter`).
This is a (perhaps final) part of the fix for https://github.com/llvm/llvm-project/issues/203915
New version of jng (9.1)
Update examples and comments to return eifaces in exec.prestop
with ifconfig -vnet (before jng shutdown in poststop).
Reported by: jlduran
PR: 268397
MFC after: 1 week
Reviewed by: kfv, jlduran
Differential Revision: https://reviews.freebsd.org/D58939
Reject CHARACTER types in AssignSimple and add death tests
AssignSimple is only intended for trivial intrinsic types (integer, real,
complex, logical). Add a guard that crashes on CHARACTER type input,
matching the existing derived-type guard.
Add death tests covering all five crash paths in AssignSimple: rank
mismatch, element-bytes mismatch, derived type, character type, and
non-allocatable element count mismatch.
Co-Authored-By: Claude Opus 4 (1M context) <noreply at anthropic.com>
[ORC] Move simple lookupAndRecordAddrs uses to lookupAndApply (#217509)
Mechanical conversions in ReOptimizeLayer, PerfSupportPlugin,
COFFVCRuntimeSupport and COFFPlatform::bootstrapCOFFRuntime: each (name,
ExecutorAddr *) pair becomes a recordAddr.
NFCI.
tarfs: remove PRIV_VFS_MOUNT_PERM check
The backing file is already opened successfully, so there is
no need to override the permissions.
Reviewed by: des
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D58832
[clang][Sema] Warn on explicit conversion functions in C++20 with -Wc++98-compat (#217342)
The explicit(bool) patch (76b9027f352a) added a
`!getLangOpts().CPlusPlus20` guard here, so this `-Wc++98-compat`
warning stopped firing in C++20 and later. C++11 through C++17 still
warn, and the test even has a FIXME asking for the warning in C++20.
Drop the guard so every mode behaves the same, update the test, and
remove the FIXME.
Fixes #161689