FreeBSD/src c8aabf2sys/dev/ixgbe if_ixv.c

ixv: Wire iflib suspend and resume methods

Register the standard iflib device suspend and resume methods so the
framework reinitializes the VF datapath after a system power
transition.

Sponsored by:   BBOX.io

(cherry picked from commit 10d09e6e8a7ff141b5dc39e6ddca5b7c2cb0b66b)
DeltaFile
+2-0sys/dev/ixgbe/if_ixv.c
+2-01 files

FreeBSD/src 65fbb9dsys/dev/iavf if_iavf_iflib.c

iavf: Wire iflib suspend and resume methods

Register the iflib device suspend and resume methods so the existing
driver callbacks run during system power transitions.  This stops
mailbox retry work before suspend and lets iflib reinitialize the
datapath after resume.

Sponsored by:   BBOX.io

(cherry picked from commit b8fe6d7055b3a274cd646d0a6b5d3928f2fd7d7a)
DeltaFile
+2-0sys/dev/iavf/if_iavf_iflib.c
+2-01 files

FreeBSD/src 68d7d3asys/dev/axgbe if_axgbe_pci.c

axgbe: Wire iflib power management methods

Register the standard iflib device methods for shutdown, suspend, and
resume.  This gives axgbe the framework managed reinitialization used by
other iflib drivers after a power transition.

Sponsored by:   BBOX.io

(cherry picked from commit 2397b18ceb5d69d4d4e3bd0b3ca07dcd077bf843)
DeltaFile
+3-0sys/dev/axgbe/if_axgbe_pci.c
+3-01 files

FreeBSD/src 671ae2dsys/dev/enic if_enic.c

enic: Route resets through iflib lifecycle

Mark the driver stopped after attach so its first IFDI_STOP() call
does not repeat hardware shutdown.

Defer error interrupt recovery through iflib instead of calling
driver stop and init methods from interrupt context.  Let iflib own
the stop and restart around MTU changes as well, avoiding duplicate
lifecycle operations.

Sponsored by:   BBOX.io

(cherry picked from commit 58f985559ee689e50233b9113df4f37375b48c2d)
DeltaFile
+4-4sys/dev/enic/if_enic.c
+4-41 files

FreeBSD/src 49b9e5asys/net iflib.c

iflib: Do not hold the ifnet lock across registration

iflib_device_register() acquired IFNET_WLOCK to preserve lock order
when ether_ifattach() was called with the context lock held.  The context
lock is now released around ether_ifattach(), making registration-wide
ifnet serialization unnecessary.

Keeping IFNET_WLOCK across driver attachment also allows synchronous
interface event handlers to recurse on it.  The rtnetlink interface-group
dump does so through if_foreach_group() while handling the interface
attachment event.

Remove the outer lock and the corresponding failure-path unlock and
relock transitions.  Continue to drop the context lock around
ether_ifattach() and taskqueue drains, and preserve context-lock coverage
for driver attach and detach.

Validated under WITNESS on 82576 and I226 controllers.  Multiple VF
attach and detach cycles, netmap control operations, and every iflib

    [13 lines not shown]
DeltaFile
+5-18sys/net/iflib.c
+5-181 files

FreeBSD/src 2a77f4dsys/dev/tpm tpm.c

tpm: Move user copies outside the TPM 1.2 lock

The character-device paths held the transaction and lifecycle lock while
uiomove() accessed user memory.  A user page fault could therefore delay
suspend or detach, and a copyout failure occurred while the TPM response
was still active.

Copy commands into the bounded stack buffer before taking the lock.  For
reads, validate the response header, buffer the complete response while
the lock is held, finish the TPM transaction, and copy it to userspace
after unlocking.  Use a non-blocking allocation so memory pressure
cannot turn response buffering into another lifecycle wait.

NetBSD uses the same separation but limits responses to its fixed 1 KiB
buffer.  Allocate the TPM-advertised response length to preserve the
existing FreeBSD support for larger streamed responses.

On a ThinkPad T440p with an STMicro TPM 1.2, a PCR read into a 4 KiB
userspace buffer returned the expected 30-byte response.  A deliberately

    [8 lines not shown]
DeltaFile
+42-29sys/dev/tpm/tpm.c
+42-291 files

FreeBSD/src b89bacbsys/dev/tpm tpmvar.h tpm.c

tpm: Bound TPM 1.2 locality ownership

A TIS locality must remain active while a command is in flight, but
should be relinquished once the command completes or is abandoned.  The
driver retained locality zero after probe, initialization, and resume,
and several transaction error paths returned without releasing it.
Closing the device after writing a command without reading its response
had the same effect.

Track locality ownership and whether a command is awaiting its response.
Release locality after probe, initialization, and resume; retain it only
across a successful command write and its matching response read.  Abort
and release on errors, replacement commands, close, and detach.

Wait for locality during ISA probe instead of assuming an immediate
grant, release locality acquired by the probe, and stop treating the
command-style TPM_ACCESS register as restorable state.

On a ThinkPad T440p with an STMicro TPM 1.2, the old driver left

    [10 lines not shown]
DeltaFile
+132-39sys/dev/tpm/tpm.c
+2-0sys/dev/tpm/tpmvar.h
+134-392 files

FreeBSD/src db010a6sys/dev/tpm tpmvar.h tpm.c

tpm: Remove Giant from the TPM 1.2 driver

Serialize TPM 1.2 commands, character-device methods, and power
transitions with an sx lock, following the command ownership model used
by the TPM 2.0 driver.  Reject new operations once detach starts and
drain the character device before releasing transport resources.

Giant also closed the interrupt race between the final TIS status check
and tsleep.  Replace that implicit dependency with a mutex and condition
variable, use an absolute deadline across unrelated wakeups, and make
the interrupt handler MPSAFE.

Create the device node atomically with its softc and finish failed write
transactions so every command path releases its transport state.

The polling path was validated on ThinkPad T430 and T440p systems with
their STMicro TPM 1.2 devices enabled.  Exclusive-open behavior, 100
consecutive PCR reads, and module unload and reload completed without
errors on both systems.  Two consecutive S3 cycles on each system

    [8 lines not shown]
DeltaFile
+251-148sys/dev/tpm/tpm.c
+12-0sys/dev/tpm/tpmvar.h
+263-1482 files

FreeBSD/src 74f94f1sys/dev/tpm tpm.c

tpm: Restore TPM 1.2 TIS state after resume

Firmware restores the state saved by TPM_ORD_SaveState, but the TIS
interrupt, locality, and command FIFO state are not guaranteed to
survive S3.  The legacy driver previously treated resume as a no-op.

Revalidate the interface and device identity, disable and acknowledge
stale interrupts, restore the configured interrupt vector, reacquire
locality zero, and return the FIFO to command-ready state.  Also disable
TIS interrupts during initial setup when the device uses polling so
firmware settings cannot leave an unhandled interrupt enabled.

TIS 1.3 Table 22 makes the interrupt control registers locality
protected.  Acquire locality before disabling or programming them during
initial setup and resume rather than relying on probe retaining
locality.

Keep TPM self-test outside the resume critical path.  It can take
minutes on some TPM 1.2 devices and is not required to restore the

    [18 lines not shown]
DeltaFile
+72-23sys/dev/tpm/tpm.c
+72-231 files

FreeBSD/src 63c33b5sys/dev/tpm tpm.c

tpm: Correct the TPM 1.2 suspend transaction

The legacy driver wrote TPM_ORD_SaveState directly to the command
FIFO, but used ordinal 156 instead of the TPM 1.2 ordinal 152 and
never completed the transaction through the transport start and end
methods.  On a TIS device this omitted TPM_STS_GO, and the response
read used the header length as flags instead of requesting the complete
parameter size.  The legacy Atmel reader would also dereference the
null byte-count pointer.

Send the header-only command through the normal transport lifecycle,
validate the response header and TPM result, and retry TPM_WARN_RETRY
for a bounded five seconds.  Fail suspend rather than enter S3 after
an unsuccessful state save.

This follows the TPM 1.2 SaveState command definition and the bounded
retry policy used by other TPM 1.2 implementations.

The stock driver failed to resume a ThinkPad T440p with its STMicro

    [11 lines not shown]
DeltaFile
+80-13sys/dev/tpm/tpm.c
+80-131 files

HardenedBSD/src e6f00eccontrib/llvm-project/libunwind/src CompactUnwinder.hpp, share/man/man4 ossl.4

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/cross-dso-cfi
DeltaFile
+2-24sys/compat/linuxkpi/common/include/linux/timer.h
+8-13share/man/man4/ossl.4
+4-6sys/dev/mlx4/mlx4_core/mlx4_catas.c
+5-4contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
+3-5sys/dev/mthca/mthca_catas.c
+2-2sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
+24-546 files not shown
+33-6012 files

HardenedBSD/src d24a3accontrib/llvm-project/libunwind/src CompactUnwinder.hpp, share/man/man4 ossl.4

Merge remote-tracking branch 'rad/hardened/current/master' into hardened/current/pledge
DeltaFile
+2-24sys/compat/linuxkpi/common/include/linux/timer.h
+8-13share/man/man4/ossl.4
+4-6sys/dev/mlx4/mlx4_core/mlx4_catas.c
+5-4contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
+3-5sys/dev/mthca/mthca_catas.c
+2-2sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
+24-546 files not shown
+33-6012 files

HardenedBSD/src ea64f01contrib/llvm-project/libunwind/src CompactUnwinder.hpp, share/man/man4 ossl.4

Merge branch 'freebsd/current/main' into hardened/current/master
DeltaFile
+2-24sys/compat/linuxkpi/common/include/linux/timer.h
+8-13share/man/man4/ossl.4
+4-6sys/dev/mlx4/mlx4_core/mlx4_catas.c
+5-4contrib/llvm-project/libunwind/src/CompactUnwinder.hpp
+3-5sys/dev/mthca/mthca_catas.c
+2-2sys/dev/mlx4/mlx4_en/mlx4_en_tx.c
+24-546 files not shown
+33-6012 files

HardenedBSD/ports 5e3a612devel/papi pkg-plist, devel/papi/files patch-mutiattach.c patch-configure

Merge branch 'freebsd/main' into hardenedbsd/main
DeltaFile
+136-101devel/papi/pkg-plist
+145-19math/minizinc/pkg-plist
+89-7devel/papi/files/patch-configure
+32-41math/gecode/Makefile
+70-0devel/papi/files/patch-mutiattach.c
+32-31science/quantum-espresso/pkg-plist
+504-19950 files not shown
+858-41056 files

LLVM/project a56ce73lldb/source/Symbol ObjectFile.cpp

[lldb] Don't dereference a possibly null DataExtractor in FindPlugin (#224347)

Restore the behavior from before e4c83b7b119c, which changed the
parameter from a DataBufferSP the branch guaranteed to be null-or-empty
into a DataExtractorSP it unconditionally dereferences.

No in-tree caller reaches this branch with a null extractor, so there is
no test.

rdar://168105064
DeltaFile
+3-3lldb/source/Symbol/ObjectFile.cpp
+3-31 files

Linux/linux 5dd1818include/keys request_key_auth-type.h, security/keys gc.c request_key_auth.c

Merge tag 'for-next-keys-v7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd

Pull key fixes from Jarkko Sakkinen.

* tag 'for-next-keys-v7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
  KEYS: encrypted: fix integer overflow of datablob_len
  KEYS: trusted: Fix tpm2_load_cmd() boundary check
  keys: translate request_key_auth pid for the reading procfs instance
  keys: fix lost wakeup when reaping a dead key type
DeltaFile
+14-6security/keys/encrypted-keys/encrypted.c
+7-5security/keys/trusted-keys/trusted_tpm2.c
+9-3security/keys/request_key_auth.c
+1-3security/keys/gc.c
+1-1include/keys/request_key_auth-type.h
+32-185 files

HardenedBSD/ports d646d7dcad/sch-rnd Makefile pkg-plist

cad/sch-rnd: Update 1.0.11 => 1.0.12
DeltaFile
+3-3cad/sch-rnd/distinfo
+3-0cad/sch-rnd/pkg-plist
+1-1cad/sch-rnd/Makefile
+7-43 files

FreeBSD/ports d646d7dcad/sch-rnd Makefile pkg-plist

cad/sch-rnd: Update 1.0.11 => 1.0.12
DeltaFile
+3-3cad/sch-rnd/distinfo
+3-0cad/sch-rnd/pkg-plist
+1-1cad/sch-rnd/Makefile
+7-43 files

LLVM/project 3d71138llvm/include/llvm/CodeGen LiveDebugVariables.h, llvm/lib/CodeGen RegAllocGreedy.cpp LiveDebugVariables.cpp

[LiveDebugVariables] Repair stale SlotIndexes

The analysis keeps its indexes from before the first register allocator
until DBG_VALUEs are emitted, by which point passes in between have
erased some of the instructions they point at. Resolve them at the
start of each allocator run and before emitting.

SlotIndexes can then reclaim the entries of erased instructions without
sparing the ones held here, which would have made generated code depend
on -g. Emitted locations are unchanged, except that intervals resolving
to one position now emit a single DBG_VALUE rather than identical
consecutive ones.
DeltaFile
+135-0llvm/lib/CodeGen/LiveDebugVariables.cpp
+57-0llvm/test/DebugInfo/AMDGPU/live-debug-vars-stale-slot-indexes.ll
+8-4llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir
+8-0llvm/include/llvm/CodeGen/LiveDebugVariables.h
+7-0llvm/lib/CodeGen/RegAllocGreedy.cpp
+4-2llvm/test/CodeGen/X86/debug-spilled-snippet.ll
+219-61 files not shown
+223-87 files

LLVM/project b03576bllvm/include/llvm/CodeGen SlotIndexes.h, llvm/lib/CodeGen SlotIndexes.cpp

[SlotIndexes] Add queries for stale indexes

An erased instruction leaves its index list entry in place, making the
index indistinguishable from a block boundary entry. Add
isBlockBoundaryIndex() and isStaleIndex() to tell the two apart, and
canonicalizeIndex() to resolve a stale index to the closest preceding
instruction's register slot, or the block start if none survives.

NFC. No caller yet. LiveDebugVariables is next.
DeltaFile
+207-0llvm/unittests/CodeGen/SlotIndexesTest.cpp
+29-0llvm/lib/CodeGen/SlotIndexes.cpp
+14-0llvm/include/llvm/CodeGen/SlotIndexes.h
+1-0llvm/unittests/CodeGen/CMakeLists.txt
+251-04 files

LLVM/project b489ab0llvm/lib/CodeGen TargetRegisterInfo.cpp, llvm/lib/Target/AArch64 AArch64RegisterInfo.cpp

Revert "[CodeGen][AArch64] Avoid duplicate hints in register allocation (#219007)" (#224451)

This reverts commit 6396f14184cb506420503e0a46fcf681fd91a90a.

Newly added CodeGen/MLRegAlloc/aarch64-evict-advisor-duplicate-hints.ll
is failing downstream CI's where the model name is not `release`.

Link: #219007
DeltaFile
+0-54llvm/test/CodeGen/MLRegAlloc/aarch64-evict-advisor-duplicate-hints.ll
+0-46llvm/unittests/Target/AArch64/AArch64RegisterInfoTest.cpp
+6-6llvm/lib/CodeGen/TargetRegisterInfo.cpp
+6-3llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
+12-1094 files

FreeBSD/ports fdd2649devel/shedskin distinfo Makefile, devel/shedskin/files patch-shedskin_config.py patch-shedskin_lib_builtin.hpp

devel/shedskin: update 0.9.12 → 0.9.13
DeltaFile
+12-3devel/shedskin/Makefile
+15-0devel/shedskin/files/patch-shedskin_lib_builtin.hpp
+11-0devel/shedskin/files/patch-shedskin_config.py
+3-3devel/shedskin/distinfo
+41-64 files

HardenedBSD/ports fdd2649devel/shedskin distinfo Makefile, devel/shedskin/files patch-shedskin_config.py patch-shedskin_lib_builtin.hpp

devel/shedskin: update 0.9.12 → 0.9.13
DeltaFile
+12-3devel/shedskin/Makefile
+15-0devel/shedskin/files/patch-shedskin_lib_builtin.hpp
+11-0devel/shedskin/files/patch-shedskin_config.py
+3-3devel/shedskin/distinfo
+41-64 files

LLVM/project 2a4d6d4llvm/test/Transforms/ThinLTOBitcodeWriter cfi-functions-hotness.ll

TODO

Created using spr 1.3.7
DeltaFile
+1-5llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-functions-hotness.ll
+1-51 files

LLVM/project 82bcb07clang/test/CodeGen builtin-clear-padding-codegen.c, clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvzip/policy/non-overloaded vunzipo.c vunzipe.c

more tests

Created using spr 1.3.7
DeltaFile
+5,753-0llvm/lib/Target/Xtensa/XtensaS3DSPInstrInfo.td
+4,402-1,088clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
+2,801-612clang/test/CodeGen/builtin-clear-padding-codegen.c
+145-1,729clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvzip/policy/overloaded/vunzipe.c
+145-1,729clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvzip/policy/non-overloaded/vunzipo.c
+145-1,729clang/test/CodeGen/RISCV/rvv-intrinsics-autogenerated/zvzip/policy/non-overloaded/vunzipe.c
+13,391-6,8871,697 files not shown
+79,140-35,2811,703 files

OpenBSD/ports 3VYtO24games/love Makefile Makefile.inc

   hook love/12 up to the build; necessary tweaks to make Makefile.inc less restrictive included. ok tb@ for this with the import
VersionDeltaFile
1.7+4-2games/love/Makefile.inc
1.33+1-0games/love/Makefile
+5-22 files

OpenBSD/ports NsOtfSigames/love/12 distinfo Makefile, games/love/12/patches patch-src_libraries_luahttps_src_common_config_h patch-platform_unix_love_desktop_in

   import a pre-release, but already commercially used version of love-12.
   ok tb@

   DESCR:
   LOVE is a framework for making 2D games in the Lua programming language.
VersionDeltaFile
1.1+58-0games/love/12/Makefile
1.1+21-0games/love/12/patches/patch-CMakeLists_txt
1.1+14-0games/love/12/patches/patch-platform_unix_love_desktop_in
1.1+13-0games/love/12/patches/patch-src_libraries_luahttps_src_common_config_h
1.1+10-0games/love/12/pkg/PLIST
1.1+2-0games/love/12/distinfo
+118-08 files not shown
+119-014 files

LLVM/project fd606c1llvm/include/llvm/ExecutionEngine/Orc RecordProxy.h LookupAndApply.h, llvm/lib/ExecutionEngine/Orc LookupAndApply.cpp

[ORC] Share one Mangler across a lookupAndApply group (#224285)

LookupPrepareFn now receives a Mangler that lookupAndApply builds once
from the search order's target triple, rather than each recordAddr /
recordProxy constructing its own per entry.
DeltaFile
+12-8llvm/include/llvm/ExecutionEngine/Orc/LookupAndApply.h
+6-6llvm/include/llvm/ExecutionEngine/Orc/RecordProxy.h
+5-1llvm/lib/ExecutionEngine/Orc/LookupAndApply.cpp
+2-2llvm/unittests/ExecutionEngine/Orc/LookupAndApplyTest.cpp
+25-174 files

LLVM/project 31f5ae6mlir/lib/Dialect/OpenACC/Transforms ACCCGToGPU.cpp, mlir/test/Dialect/OpenACC acc-cg-to-gpu-predicate-region-active-dims.mlir

[OpenACC] Honor precomputed active par dims on a predicate region (#224390)

Example:
```mlir
acc.predicate_region {
  memref.store %updated, %shared[] : memref<f64>
} {acc.active_par_dims = #acc<active_par_dims[]>}
```
Code outside a gang-level loop runs on every thread block, so the block
dims are treated as active and never predicated away. That is right for a
redundant computation, but not for an in-place update of memory the whole
launch shares: every block applies it. The attribute above was ignored
here, because only a privatization could state which dims run it
unpredicated.

Fix: honor a precomputed active set on a predicate region too. An empty
set leaves one block and one thread performing the update; listing the
thread dims of the enclosing loops keeps a work-shared update distributing
its iterations. Behavior is unchanged for a region without the attribute.
DeltaFile
+58-0mlir/test/Dialect/OpenACC/acc-cg-to-gpu-predicate-region-active-dims.mlir
+3-2mlir/lib/Dialect/OpenACC/Transforms/ACCCGToGPU.cpp
+61-22 files

LLVM/project 0dbd2c8llvm/include/llvm/CodeGen LiveDebugVariables.h, llvm/lib/CodeGen RegAllocGreedy.cpp LiveDebugVariables.cpp

[LiveDebugVariables] Repair stale SlotIndexes

The analysis keeps its indexes from before the first register allocator
until DBG_VALUEs are emitted, by which point passes in between have
erased some of the instructions they point at. Resolve them at the
start of each allocator run and before emitting.

SlotIndexes can then reclaim the entries of erased instructions without
sparing the ones held here, which would have made generated code depend
on -g. Emitted locations are unchanged, except that intervals resolving
to one position now emit a single DBG_VALUE rather than identical
consecutive ones.
DeltaFile
+135-0llvm/lib/CodeGen/LiveDebugVariables.cpp
+57-0llvm/test/DebugInfo/AMDGPU/live-debug-vars-stale-slot-indexes.ll
+8-4llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir
+8-0llvm/include/llvm/CodeGen/LiveDebugVariables.h
+7-0llvm/lib/CodeGen/RegAllocGreedy.cpp
+4-2llvm/test/CodeGen/X86/debug-spilled-snippet.mir
+219-61 files not shown
+223-87 files