nvpair: Improve native handling of unterminated strings
This continues the work done in 59dc88602e23a436440e4164c6d9401da8f0dff2
and parallels what is already done for XDR encoding.
Reported-by: Grok 4.5 Build Beta
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alek Pinchuk <Alek.Pinchuk at connectwise.com>
Signed-off-by: Richard Yao <richard at ryao.dev>
Closes #18876
[lldb] Pass a Target to Platform::GetSharedModule (#214633)
PlatformDarwinKernel::GetSharedModuleKernel unconditionally dereferenced
the process to reach the target's debug file search paths. The Process *
is the wrong thing to be threading through Platform::GetSharedModule.
Refactor Platform::GetSharedModule to take a `Target &` and get the
process from the target if we really need it.
[SLP] Allow non-power-of-2 VF in tryToVectorizeList (#206259)
Non-power-of-2 VF support (-slp-vectorize-non-power-of-2) was wired into
the `load/store/reduction` paths but not into `tryToVectorizeList`, so
`buildvector/insertelement` seeds like <15 x half> were split into
power-of-2 pieces instead of a single vector op.
Consult `isAllowedNonPowerOf2VF()` when computing `MaxVF` and in the
inner
full-vector guard so supported widths are tried. No change unless
`-slp-vectorize-non-power-of-2` is enabled.
https://godbolt.org/z/1b8GebPEW
kqueue: avoid closing a file under the knlist lock
Killing a knote releases its file reference, and releasing the last one
runs the close path inline.
panic: _mtx_lock_sleep: recursed on non-recursive mutex ttymtx
Revoking a controlling tty during exit reaches this whenever a knote is
still registered on it.
Released the knlist lock around the drop and restart the walk.
The knote stays valid while the lock is released.
MFC: 1 week
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D58681
[offload] Fix extra semicolon after API_HELPER_OPTIONAL macro in L0Compat.h (#214569)
Remove extra semicolon after API_HELPER_OPTIONAL macro invocation which
is flagged as incompatible with C++98 [-Wc++98-compat-extra-semi].
Merge tag 'drm-fixes-2026-08-08' of https://gitlab.freedesktop.org/drm/kernel
Pull drm fixes from Dave Airlie:
"Weekly fixes for drm, feels relatively quiet for the post-AI world,
mostly amdgpu and xe with a few fixes across the board:
shmem:
- check VMA boundaries for PMD mappings
xe:
- Fix memory leak in exec_queue_set_hang_replay_state
- Apply RCS/CCS yield policy to SR-IOV VFs
amdgpu:
- JPEG queue reset fixes
- GC 12 fix
- GMC 12.1 fixes
- Lockdep false positive fix
- Userq fix
[45 lines not shown]
Protect the container dataset from user deletion
## Problem
`<pool>/.truenas_containers` was destroyable through the public API. The destroy and rollback guards test the second path component against `INTERNAL_PATHS`, and the container dataset was not in that tuple, so a recursive `zfs.resource.destroy` wiped the whole tree, container rootfs snapshots deleted cleanly, and the image snapshot went away with `defer` set. `pool.dataset.delete` only failed by accident and reported a misleading "does not exist".
Adding the entry is not enough on its own. `pool.reset_mountpoint_recursively` reads the container dataset out of a pool-level query, which filters internal paths out, so the custom mountpoint would silently stop being repaired and containers would come up on an empty directory.
## Solution
Move the mountpoint repair into the container plugin as `container.ensure_pool_mountpoint`, which names the dataset explicitly - naming an internal path opts out of the filter, the same thing `docker.fs_manage.ensure_ix_apps_mount_point` relies on for `ix-apps`. It also refuses to overmount, which matters more here than for `ix-apps` because the container dataset exists on every pool and two pools can end up claiming the same path after a rename.
- **`pool.reset_mountpoint_recursively`** delegates to it, after the inherit walk rather than inside the first-level loop.
- **`ensure_datasets`** repairs a drifted mountpoint instead of raising, so it is no longer a dead end.
- **`container.repair_pool_mountpoints`** runs on boot between the legacy migration and autostart, covering `pool.import_on_boot` and the failover import, neither of which resets mountpoints at all.
With that in place `.truenas_containers` joins `INTERNAL_PATHS`. It is spelled out there rather than imported so the zfs layer does not reach into a plugin package, and a unit test keeps the two in sync.
`pool.filesystem_choices` no longer lists container datasets, so any existing periodic snapshot or VMware task pointed at one will fail revalidation - worth a release note. Renaming remains unguarded: `zfs.resource.rename` has no internal-path check, and the same hole applies to `ix-apps` and `.system` today.
ocs_fc: return correct error code from ocs_hw_set_persistent_topology()
No functional change, as current callers either don't check the return
value or check it against OCS_HW_RTN_SUCCESS only.
Found with: clang -Werror=assign-enum
[clang][StaticAnalysis] Fix an false negative bug in handling '__builtin*overflow' (#214553)
For a binary operation 'A op B' and a result type 'T', these builtins
return true/false for whether the operation's result is a value 'T'
cannot hold. CSA models this by computing the operation's result in a
temporary type and comparing it against the bounds of 'T'. However, the
temporary type is only twice as wide as 'T', not the operands. When
either operand is wider than 'T's doubled width, the result of 'A op B'
can silently wrap around before the comparison, producing a false
negative.
The solution is to find the proper type to temporarily hold the result
of 'A op B' from types of 'A' and 'B'.
rdar://184263112
---------
Co-authored-by: Balázs Benics <benicsbalazs at gmail.com>
[flang][semantic] Implement semantic checks and new data structure for explicit-shape-bounds-spec (#203030)
Since Lower and large parts of Semantics depend on ShapeSpec being a scalar bound, implement a class RankOneBoundElement that does just this. Since there is no syntactic representation for this node kind, have both unparse.cpp and mod-file.cpp emit the original rank-1 integer array expression instead of scalarized versions.
Analyze does semantic checks, then repackages into an array of scalarized ShapeSpec pairs instead of a pair of arrays.
Lower implementation in follow-up stack PR.
Also, fix pre-existing bug where overriding dimension spec in entity-decl throws away and fails to type check the array-spec provided in dimension spec.
[CIR] Implement alwaysinline/noinline on call sites (#214789)
When these appear in an AttributedStmt, we have to annotate the call
with these attributes. This patch implements them for all of the
CallOpInterface types.