Convert the zfs.resource services to the typesafe pattern
## Context
`zfs.resource`, `zfs.resource.snapshot` and `zfs.resource.pool` were already half-converted: public methods carried `@api_method(check_annotations=True)` against models in `api/v27_0_0/`, and most in-process consumers already went through `call2`. What was missing was the structural half - the service classes still held the implementation. `resource_crud.py` and `snapshot_crud.py` were 800+ lines each, mixing a 117-line create pipeline, destroy validation, path helpers and per-method exception translation in with the API surface.
## Solution
**Lean shims delegating to module functions.** The three services keep only their `Config`, decorators and docstrings, and hand off to plain functions taking a `ServiceContext` - the same shape `ports`, `hardware` and `boot` already use. `ZFSResourceService` moves to `plugins/zfs/__init__.py` and the snapshot service to `snapshot.py`; the logic lands in `resource_{query,create,destroy,ops}.py`, `snapshot_ops.py` and `prefetch_ops.py`. `create_rules.py`'s three pool-inspecting helpers now take a `ServiceContext` rather than an untyped `service`, and while touching that file it picks up `from __future__ import annotations` so its annotations stop being quoted strings.
**`zfs.resource.pool` becomes a sub-service** of `zfs.resource` instead of only being picked up by the plugin loader, which gives it a `self.s` path. That was the last thing forcing untyped string calls into this namespace - `pool.dedup`, the failover event handler and the `pool.post_import` hook all use `call2` now, and no string call to `zfs.resource*` survives outside the over-the-wire tests.
**`alert.source.zfs_tier` imports its plugin helper inside the method that uses it.** `middlewared.service` pulls in every alert source while it is still initialising, so a module-level import of a plugin package re-enters it before `Service` is bound and startup dies with an ImportError. Worth knowing that nothing static catches this: mypy, lint, ruff and the whole unit suite were green on the broken tree.
`GenericCRUDService` is not an option here - its metaclass forces `filters`/`options` onto `query`, and `zfs.resource.query` takes a single request model. The `*_impl` methods also still return dicts, so nothing outside `plugins/zfs/` changes how it reads a result. Public wire shapes are identical, checked by replaying the full API surface on a test VM and diffing against the same run before the change.
Enforce canmount=noauto across the whole apps dataset tree
## Problem
We only re-assert canmount=noauto on the five structural ix-apps datasets, never on the per-app volume datasets beneath app_mounts. If one of those ends up canmount=on - a hand-rolled zfs recv migration, or simply the ZFS default when a replication task runs without properties - the boot mount sweep mounts it while correctly skipping its noauto parent, and docker then mounts /mnt/.ix-apps straight over the top. The volume stays mounted but unreachable: zfs reports mounted=yes, stat returns ENOENT, and the container fails with "bind source path does not exist". Nothing recovers from this on its own, because the remount path only mounts datasets reporting mounted=no.
## Solution
Walk the whole apps tree in a single query and set canmount=noauto wherever it drifted. This is hooked into the docker start reconcile and, more importantly, into pool import right after the root dataset properties are normalized. The import hook is what actually prevents the breakage - it runs while the pool is imported but none of it is mounted yet, so the recursive mount that follows never encounters a canmount=on descendant. Pool import cannot fail because of it; a failure only logs a warning.
A box already in the broken state comes up clean on its next boot, but until then it still cannot unset its apps pool.
Convert the zfs.resource services to the typesafe pattern
## Context
`zfs.resource`, `zfs.resource.snapshot` and `zfs.resource.pool` were already half-converted: public methods carried `@api_method(check_annotations=True)` against models in `api/v27_0_0/`, and most in-process consumers already went through `call2`. What was missing was the structural half - the service classes still held the implementation. `resource_crud.py` and `snapshot_crud.py` were 800+ lines each, mixing a 117-line create pipeline, destroy validation, path helpers and per-method exception translation in with the API surface.
## Solution
**Lean shims delegating to module functions.** The three services keep only their `Config`, decorators and docstrings, and hand off to plain functions taking a `ServiceContext` - the same shape `ports`, `hardware` and `boot` already use. `ZFSResourceService` moves to `plugins/zfs/__init__.py` and the snapshot service to `snapshot.py`; the logic lands in `resource_{query,create,destroy,ops}.py`, `snapshot_ops.py` and `prefetch_ops.py`. `create_rules.py`'s three pool-inspecting helpers now take a `ServiceContext` rather than an untyped `service`.
**`zfs.resource.pool` becomes a sub-service** of `zfs.resource` instead of only being picked up by the plugin loader, which gives it a `self.s` path. That was the last thing forcing untyped string calls into this namespace - `pool.dedup`, the failover event handler and the `pool.post_import` hook all use `call2` now, and no string call to `zfs.resource*` survives outside the over-the-wire tests.
**`alert.source.zfs_tier` imports its plugin helper inside the method that uses it.** `middlewared.service` pulls in every alert source while it is still initialising, so a module-level import of a plugin package re-enters it before `Service` is bound and startup dies with an ImportError. Worth knowing that nothing static catches this: mypy, lint, ruff and the whole unit suite were green on the broken tree.
`GenericCRUDService` is not an option here - its metaclass forces `filters`/`options` onto `query`, and `zfs.resource.query` takes a single request model. The `*_impl` methods also still return dicts, so nothing outside `plugins/zfs/` changes how it reads a result. Public wire shapes are identical, checked by replaying the full API surface on a test VM and diffing against the same run before the change.
[libc][math] Fix fast path with small inputs for double precision sin/cos. (#221012)
https://github.com/llvm/llvm-project/pull/201748 added a fast branch for
small inputs to double precision sin/cos,
but the Ziv error bounds were too tight.
Fixes in this PR:
- Updating the Ziv error bounds to accommodate rounding errors.
- Copy binary64 sin/cos hard-to-round cases from the CORE-MATH project.
- Add python tool to convert textual hard to round cases to binary
files, and add those binary files.
- Add hard-to-round tests for double precision sin/cos in the exhaustive
test folder.
Fixes https://github.com/llvm/llvm-project/issues/220934.
Assisted-by: Gemini is used to generate the worst-case text-to-binary
tool.
mux proxy sockets also share in and out fds, so using this as a
heuristic to decide whether the connection is on an inet/inet6
socket is incorrect.
Fixes breakage in t-multiplex after recent pledge(2) changes where
the packet code would attempt to set TCP_NODELAY on a mux proxy
connection (which is AF_UNIX).
asmc.4: clean up/modernize manpage
- sysutils/ataidle is no more: it was superseded by camcontrol(8).
- Sort the models table alphabetically.
- Use the SPDX License ID instead of the longhand licensing tort in the
manpage header.
- Note that the driver has been heavily modified in 15.1 and later to
support additional platforms and functionality.
- Trim down SYNOPSIS.
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D59470
apple_bce.4: add a basic manpage describing the driver
This new manpage describes what the apple_bce driver services, how the
driver is configured, and what Apple models the driver claims to
support.
Reviewed by: seuros
Differential Revision: https://reviews.freebsd.org/D59467
drm/amdkfd: Reject zero-sized AQL queue allocations after size halving
From Sunday Clement
fd3462acf6590687ec1f2e062109723a76a49cbc in linux-6.18.y/6.18.51
40ba09e11188d1b7f79d51fc28aca5ea45e0c138 in mainline linux
drm/amdkfd: guard against NULL restore_mqd in CRIU queue restore
From Vladimir Marioukhine
ebffa44e7a21ead59ac4b4264e8fc2cbb44c4a21 in linux-6.18.y/6.18.51
6aa530642f95d5c48aa336416f94a35e7949b647 in mainline linux
drm/amdkfd: Fix the case that vm range is hole at svm_migrate_copy_to_vram
From Xiaogang Chen
ae806a95b28fcecb913430cfa45a252e91a945d6 in linux-6.18.y/6.18.51
520e345ffe05aabef1db82beda4288afb1757ff2 in mainline linux
drm/amdkfd: Fix error path at svm_migrate_copy_to_ram
From Xiaogang Chen
da87bcad1f781d822e7ced6d1de9dbc6d381c72e in linux-6.18.y/6.18.51
960c4a8069bfd352c48cc88592618f1ebe24c69e in mainline linux
drm/amdkfd: Add TLB flush after MES queue eviction/suspension
From Priya Hosur
e230c546ed93741833ab5babb0b202f9c2052b45 in linux-6.18.y/6.18.51
94e25cb6ab7f4f025bcdcd8ea79fda30f12843a4 in mainline linux
drm/amdgpu: use AMDGPU_GPU_PAGE_SHIFT instead of PAGE_SHIFT
From Sunil Khatri
2e4b909fab96c557e43f661a8944d979db6dada9 in linux-6.18.y/6.18.51
d6e16df7df4d2c39e2b04b355d0434fb90e2d62c in mainline linux
drm/amdgpu: update the fw version for gfx12 userqueues
From Sunil Khatri
65e643703f1509f12395843f264782f1f7e60d7d in linux-6.18.y/6.18.51
49a74a2388528c1a2e96f01114c4513e635605fe in mainline linux
drm/amdgpu: update the fw version for gfx11 userqueues
From Sunil Khatri
b7cb1b66961371bd565d85773d5a679c8428d6f3 in linux-6.18.y/6.18.51
c748dd03df33360549ad60cdccee13570e9c0f90 in mainline linux
drm/amdgpu: Skip accessing psp rum time db for APUs
From Kanala Ramalingeswara Reddy
8de8b4e11ce487bccde37cc23c350f5084a86818 in linux-6.18.y/6.18.51
a26301203a196a991527f7b1ab884d4dd0e7c95e in mainline linux
drm/amdgpu: fix autosuspend cleanup during removal
From Guangshuo Li
492dbf832964c30e7e837773ecc7ac6bf152f3f0 in linux-6.18.y/6.18.51
ef5fcf2a6c320676bf8be2dadac93d9023b468b7 in mainline linux
drm/amdgpu: Disable runtime PM for externally attached dGPUs
From Yang Wang
812c406f752914d8897da37c8fb2e86488054623 in linux-6.18.y/6.18.51
c52feb4365396b6a881b5e8a95540517ffabb3b7 in mainline linux
drm/amdgpu: clamp the isolation index for rings outside a partition
From Xiang Liu
964de255497ffd7cb8a86e405b8ac6d927e7e177 in linux-6.18.y/6.18.51
b30900566642ceb2c9e12b56c2afec28d0fd91a0 in mainline linux
drm/amdgpu: check thunderbolt before switcheroo registration
From Yang Wang
b3a7e0b69903e76415abb057119640e1398ab2e8 in linux-6.18.y/6.18.51
8587d48d694da5aca580f92461658ec14470592b in mainline linux
drm: Fix drm_crtc_commit leak if signaled when PAGE_FLIP_EVENT is used
From Thadeu Lima de Souza Cascardo
66b1b309886337745d395bbc158440ab196305ce in linux-6.18.y/6.18.51
4d4be202165e832d74849b4a68e289a2a377039c in mainline linux
drm/amdgpu/vcn: fix integer overflow in dec_msg buffer count check
From David (Ming Qiang) Wu
7e28853c78c20bb8ba4c1dba702430cd05e09f76 in linux-6.18.y/6.18.51
4d7390530853eb7befda9cc786e4c86e8ad7ac9e in mainline linux
drm/amd/display: validate plane degamma LUT size for private color prop
From Harry Wentland
0b2615b8b54f58bbdf986dffb38cbc35214a5cc5 in linux-6.18.y/6.18.51
e4c3ab59021e7c146a84b6671f0d530972bd58b4 in mainline linux
drm/amd/display: fix dc_lock leak on GPU reset error paths
From Linkai Gong
295d2bf42061db490254e748f9344545bb7faf19 in linux-6.18.y/6.18.51
92a9eebd2a1f892fe482154d83f9f1626bc73d3b in mainline linux