FreeBSD/src 07d5d9c — sys/dev/aq aq_main.c

aq: Use the common RSS key without options RSS

Fetch the common RSS key independently of options RSS instead of
generating a private key in non-RSS kernels.  Keep the existing
software-RSS or round-robin indirection policy and hardware key
serialization unchanged.

Reviewed by:    gallatin
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59793

(cherry picked from commit 772994d7748287be70fe850ec9e1117d4e7b1747)
DeltaFile
+3-2sys/dev/aq/aq_main.c
+3-21 files

FreeBSD/src dfe2ff8 — sys/dev/aq aq_main.c

aq: Report partial initialization failures to iflib

Stop initialization when hardware setup, ring initialization/start, or
datapath start fails. Run the existing best-effort stop/cache/reset
cleanup and report the failure through iflib_init_failed(). Do not keep
configuring later rings or publish the interface as running.

Reviewed by:    nprice
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59853

(cherry picked from commit 050683bb8e136981e4a1f66e845ab05c135630f4)
DeltaFile
+15-4sys/dev/aq/aq_main.c
+15-41 files

FreeBSD/src 5c2e2eb — sys/dev/aq aq_hw_llh.h aq_ring.c

aq: Invalidate the descriptor cache after stopping all rings

Atlantic controllers can retain receive descriptors and their data
addresses after their rings are disabled. Reusing or releasing those
mappings without invalidating the device cache has caused observed
IOMMU and SMMU faults in the referenced Linux reports (7a1bb49461b1,
ed4d81c4b3f2 and 7526183cfdbe).

Move global cache invalidation out of the per-ring stop routine. Disable
every ring first, toggle invalidation once, and wait for its completion
indication. Exclude Atlantic A0, as in the upstream workaround. Report
a completion timeout rather than silently discarding it.

Reviewed by:    nprice
MFC after:      2 weeks
Sponsored by:   BBOX.io
Differential Revision:  https://reviews.freebsd.org/D59852

(cherry picked from commit 4993c1052f899b9a971815df5661ca241641ad8e)
DeltaFile
+25-0sys/dev/aq/aq_hw.c
+9-0sys/dev/aq/aq_hw_llh.c
+5-0sys/dev/aq/aq_hw_llh_internal.h
+0-4sys/dev/aq/aq_ring.c
+4-0sys/dev/aq/aq_main.c
+3-0sys/dev/aq/aq_hw_llh.h
+46-41 files not shown
+48-47 files

FreeBSD/src e8000d0 — sys/dev/mgb if_mgb.c

mgb: Propagate DMA setup errors and use the requested channel

Check the receive DMA and frame transfer setup results that were
previously discarded. Return EINVAL for invalid ring/writeback addresses
rather than reporting success, and stop initialization through
iflib_init_failed() when a ring could not be configured.

Use the transmit queue count for transmit initialization and the supplied
channel index for DMA operations. The driver currently allocates one
queue in each direction, so those index/count corrections are latent.

MFC after:      2 weeks
Sponsored by:   BBOX.io

(cherry picked from commit 3f6c1e731376ffaf8612e7e196119acabbf357e4)
DeltaFile
+19-6sys/dev/mgb/if_mgb.c
+19-61 files

FreeBSD/src 6c44e6e — sys/dev/mgb if_mgb.c

mgb: Correct TX interrupt bit

The TX interrupt handler checked MGB_INTR_STS_RX(qidx) instead of
MGB_INTR_STS_TX(qidx) -- presumably a copy-paste issue.

Because the driver does not use TX interrupts so there was no actual
issue in practice.

Reviewed by:    adrian
Sponsored by:   The FreeBSD Foundation
Fixes: 8890ab7758b8 ("Introduce if_mgb driver for Microchip LAN743x PCIe NIC")
Differential Revision: https://reviews.freebsd.org/D60550

(cherry picked from commit 6c3f2b8be268de075d60387158f2889140851725)
DeltaFile
+1-1sys/dev/mgb/if_mgb.c
+1-11 files

FreeNAS/freenas e74f0cc — src/middlewared/middlewared/plugins/pool_ dataset.py, tests/api2 test_pool_dataset_create.py

Mount ancestors after creating them
DeltaFile
+15-1tests/api2/test_pool_dataset_create.py
+2-0src/middlewared/middlewared/plugins/pool_/dataset.py
+17-12 files

LLVM/project 4f49ad2 — llvm/lib/Transforms/Vectorize LoopVectorize.cpp

Remove newline
DeltaFile
+0-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+0-11 files

FreeNAS/freenas 5b6b2ef — src/middlewared/middlewared/plugins/zfs encryption_ops.py, tests/api2 test_pool_dataset_encryption.py

NAS-144261 / 28.0.0-BETA.1 / Accept key_file alone when changing a dataset key (#19991)

## Problem
change_key rejected a request that set only key_file with "Either Key or
passphrase must be provided." because the check ran before the key was
read from the input pipe and only looked at key and generate_key, so an
encryption root could not be changed to a hex key uploaded as a file.

## Solution
Count key_file as a key source in that check and name all four key
options in its error. Combinations of key options are still rejected by
resolve_key_options and an invalid key file still fails in
read_hex_key_from_pipe, both before anything is changed. The integration
test uploads a key file and confirms both the stored key and that ZFS
accepts it.
DeltaFile
+27-1tests/api2/test_pool_dataset_encryption.py
+3-3src/middlewared/middlewared/plugins/zfs/encryption_ops.py
+30-42 files

LLVM/project 6e1244d — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 x87.ll ftrunc.ll

[X86] FP_TO_INTHelper - bail out if X87 is disabled (#231185)

Fixes #230711
DeltaFile
+573-0llvm/test/CodeGen/X86/ftrunc.ll
+318-0llvm/test/CodeGen/X86/x87.ll
+3-0llvm/lib/Target/X86/X86ISelLowering.cpp
+894-03 files

LLVM/project 1b01be9 — llvm/test/Transforms/LoopVectorize/VPlan compress-idioms.ll

Rebase fixups
DeltaFile
+3-3llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+3-31 files

LLVM/project af7b7e9 — llvm/lib/Transforms/Vectorize VPlan.h, llvm/test/Transforms/LoopVectorize compress-idioms-negative-tests.ll

Rebase fixups
DeltaFile
+3-3llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+1-1llvm/lib/Transforms/Vectorize/VPlan.h
+4-42 files

LLVM/project 44a1244 — llvm/test/Transforms/LoopVectorize/X86 compress-idioms.ll

Rebase X86 tests
DeltaFile
+44-32llvm/test/Transforms/LoopVectorize/X86/compress-idioms.ll
+44-321 files

LLVM/project 2ec6bc5 — llvm/lib/Transforms/Utils LoopUtils.cpp, llvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp LoopVectorize.cpp

Fixups
DeltaFile
+67-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+10-5llvm/lib/Transforms/Utils/LoopUtils.cpp
+6-8llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+9-5llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
+1-10llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+7-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+100-321 files not shown
+101-337 files

LLVM/project 33e76bf — llvm/lib/Transforms/Utils LoopUtils.cpp

Rebase fixups
DeltaFile
+1-1llvm/lib/Transforms/Utils/LoopUtils.cpp
+1-11 files

LLVM/project 8b54dd2 — llvm/lib/Transforms/Vectorize LoopVectorize.cpp

Rebase fixups
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+1-11 files

LLVM/project e19fe50 — llvm/lib/Transforms/Vectorize LoopVectorizationPlanner.h LoopVectorizationPlanner.cpp

Always pass a vector type to TTI.isLegalMaskedCompressStore/ExpandLoad
DeltaFile
+4-4llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+4-3llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+1-1llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+9-83 files

LLVM/project de35761 — llvm/include/llvm/Transforms/Utils LoopUtils.h

Add LLVM_ABI marker
DeltaFile
+3-4llvm/include/llvm/Transforms/Utils/LoopUtils.h
+3-41 files

LLVM/project 6b1b0f9 — llvm/test/Transforms/LoopVectorize/RISCV compress-idioms.ll, llvm/test/Transforms/LoopVectorize/X86 compress-idioms.ll

Rebase tests
DeltaFile
+45-29llvm/test/Transforms/LoopVectorize/RISCV/compress-idioms.ll
+12-12llvm/test/Transforms/LoopVectorize/X86/compress-idioms.ll
+57-412 files

LLVM/project 6d5d0d8 — llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll compress-idioms.ll, llvm/test/Transforms/LoopVectorize/AArch64 compress-idioms.ll

Update checks
DeltaFile
+333-418llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+132-53llvm/test/Transforms/LoopVectorize/X86/compress-idioms.ll
+59-43llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+54-4llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+578-5184 files

LLVM/project bfe5e49 — llvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h, llvm/lib/Transforms/Utils LoopUtils.cpp

[LoopVectorize] Support vectorization of compressing patterns in VPlan

RFC link: https://discourse.llvm.org/t/rfc-loop-vectorization-of-compress-store-expand-load-patterns/86442

This adds loop vectorizer support for "compressing" patterns,
for example:

```
int dst_idx = 0;
for (int i = 0; i < n; i++) {
  if (cond[i])
    dst[dst_idx++] = src[i];
}
```

Can be vectorized with a `llvm.masked.compressstore` as:

```
int dst_idx = 0;

    [76 lines not shown]
DeltaFile
+153-0llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+94-12llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+91-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+75-0llvm/lib/Transforms/Utils/LoopUtils.cpp
+57-8llvm/lib/Transforms/Vectorize/VPlan.h
+55-1llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+525-2114 files not shown
+663-2820 files

LLVM/project 921c2c0 — llvm/lib/Transforms/Utils LoopSimplify.cpp, llvm/test/Transforms/LoopSimplify unreachable-loop-pred.ll

[LoopSimplify] Use SmallSetVector for dead predecessor removal (#231155)

In `simplifyOneLoop`, `BadPreds` was previously declared as
`SmallPtrSet<BasicBlock*, 4>`. When a non-header loop block had 5 or
more unreachable out-of-loop predecessors, `SmallPtrSet` overflowed its
inline small array and iterated over `BasicBlock*` pointers in hash
order under ASLR. Because `PHINode::removeIncomingValue` swaps each
removed predecessor slot with the last `PHINode` operand, removing dead
predecessors in pointer-hash order permuted the remaining live incoming
blocks in the `PHINode` and produced non-deterministic IR and ThinLTO
bitcode.

Replace `SmallPtrSet<BasicBlock*, 4>` with `SmallSetVector<BasicBlock *,
4>` to deduplicate and remove dead predecessors in deterministic
`predecessors(BB)` order.

Fixes #231143
DeltaFile
+57-1llvm/test/Transforms/LoopSimplify/unreachable-loop-pred.ll
+1-1llvm/lib/Transforms/Utils/LoopSimplify.cpp
+58-22 files

LLVM/project 275f0d5 — llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/test/CodeGen/AMDGPU sdiv.ll

fix(SelectionDAG): Preserve operand sharing

Demanded-bits simplification can bypass a shared producer without
removing it or its bitwise user. Reusing its previously single-use input
extends its live range and can introduce two-address copies.

Keep the shared value in this case for AND, OR, and XOR. Still bypass
bitwise producers to enable reassociation. Folds that remove the user
and rewrites using already-shared inputs remain available.

Remove three redundant copies in vector-bo-select without target or
subtarget checks.

The RISC-V checks each lose one instruction. GFX9 v_sdiv_i24 moves five
vector operations to scalar operations and adds a final move, growing
by four bytes; the other AMDGPU changes only affect register allocation.
DeltaFile
+56-58llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
+40-39llvm/test/CodeGen/AMDGPU/sdiv.ll
+21-12llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+10-13llvm/test/CodeGen/X86/vector-bo-select.ll
+127-1224 files

FreeBSD/ports 2dd3775 — japanese/fcitx5-cskk Makefile, japanese/fcitx5-hazkey Makefile

*/fcitx5-*: Bump PORTREVISION after textproc/fcitx5 update

Rebuild the fcitx5 addons that link against textproc/fcitx5 but are
not updated in this batch:

- chinese/fcitx5-keykey
- chinese/fcitx5-mcbopomofo
- japanese/fcitx5-cskk
- japanese/fcitx5-hazkey
- japanese/fcitx5-karukan
- japanese/fcitx5-skk
- textproc/fcitx5-afrim
- textproc/fcitx5-mcfoxim
DeltaFile
+1-1textproc/fcitx5-afrim/Makefile
+1-1japanese/fcitx5-skk/Makefile
+1-1japanese/fcitx5-hazkey/Makefile
+1-1japanese/fcitx5-cskk/Makefile
+1-0textproc/fcitx5-mcfoxim/Makefile
+1-0japanese/fcitx5-karukan/Makefile
+6-42 files not shown
+8-48 files

FreeBSD/ports dc50745 — korean/fcitx5-hangul pkg-plist Makefile

korean/fcitx5-hangul: Update to 5.1.11
DeltaFile
+3-3korean/fcitx5-hangul/distinfo
+1-2korean/fcitx5-hangul/Makefile
+1-0korean/fcitx5-hangul/pkg-plist
+5-53 files

FreeBSD/ports 0641e4d — chinese/fcitx5-table-other distinfo Makefile

chinese/fcitx5-table-other: Update to 5.1.8

The package contains only data files, no ELF objects.  libime and
fcitx5 are needed at build time (find_package(LibIMETable), and
libime_tabledict to convert the dictionaries), so turn LIB_DEPENDS
into BUILD_DEPENDS and keep a run dependency on fcitx5 only.
DeltaFile
+4-4chinese/fcitx5-table-other/Makefile
+3-3chinese/fcitx5-table-other/distinfo
+7-72 files

FreeBSD/ports 3c34fc7 — japanese/fcitx5-anthy pkg-plist Makefile

japanese/fcitx5-anthy: Update to 5.1.11
DeltaFile
+3-3japanese/fcitx5-anthy/distinfo
+1-2japanese/fcitx5-anthy/Makefile
+1-0japanese/fcitx5-anthy/pkg-plist
+5-53 files

FreeBSD/ports 7eb9262 — chinese/fcitx5-table-extra distinfo Makefile

chinese/fcitx5-table-extra: Update to 5.1.13

The package contains only data files, no ELF objects.  libime and
fcitx5 are needed at build time (find_package(LibIMETable), and
libime_tabledict to convert the dictionaries), so turn LIB_DEPENDS
into BUILD_DEPENDS and keep a run dependency on fcitx5 only.
DeltaFile
+4-4chinese/fcitx5-table-extra/Makefile
+3-3chinese/fcitx5-table-extra/distinfo
+7-72 files

FreeBSD/ports a2d56c9 — chinese/fcitx5-chinese-addons pkg-plist distinfo

chinese/fcitx5-chinese-addons: Update to 5.1.15

Add build dependency on devel/nlohmann-json: since 5.1.14,
CMakeLists.txt calls find_package(nlohmann_json 3.2 REQUIRED).

Fix the dependency declarations flagged by stage-qa: boost is only
used for a header (boost/container_hash/hash.hpp), so it is a build
dependency; libfmt is not used at all; the GUI part links against
libFcitx5Qt6WidgetsAddons, not libFcitx5Qt6DBusAddons; and only the
gettext tools (msgfmt) are needed, not libintl.
DeltaFile
+7-8chinese/fcitx5-chinese-addons/Makefile
+3-3chinese/fcitx5-chinese-addons/distinfo
+1-0chinese/fcitx5-chinese-addons/pkg-plist
+11-113 files

FreeBSD/ports 5efa620 — chinese/fcitx5-rime Makefile pkg-plist

chinese/fcitx5-rime: Update to 5.1.16
DeltaFile
+3-3chinese/fcitx5-rime/distinfo
+5-0chinese/fcitx5-rime/pkg-plist
+1-2chinese/fcitx5-rime/Makefile
+9-53 files

FreeBSD/ports 53e842e — chinese/fcitx5-chewing pkg-plist Makefile

chinese/fcitx5-chewing: Update to 5.1.13
DeltaFile
+3-3chinese/fcitx5-chewing/distinfo
+1-2chinese/fcitx5-chewing/Makefile
+1-0chinese/fcitx5-chewing/pkg-plist
+5-53 files