LLVM/project f041dd4llvm/lib/Target/AMDGPU/Disassembler AMDGPUDisassembler.h AMDGPUDisassembler.cpp, llvm/test/MC/Disassembler/AMDGPU decode-err.txt

[AMDGPU] Fix an AMDGPU disassembler crash

Fixes #214909.
DeltaFile
+6-3llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+5-0llvm/test/MC/Disassembler/AMDGPU/decode-err.txt
+1-1llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
+12-43 files

LLVM/project 756e26alibclc/test lit.cfg.py, libclc/test/conformance work_group_reduce.cl conformance.h

[libclc] Add math smoke test for cos special values (#214786)

Summary:
Basic math version of unit tests used to give reference for how these
can test the known special values. SImilar to LLVM libc's smoke math
tests on the GPU. More can be added later,
DeltaFile
+88-0libclc/test/conformance/math/cos.cl
+57-0libclc/test/conformance/conformance.h
+0-12libclc/test/conformance/work_group_reduce.cl
+12-0libclc/test/conformance/workgroups/work_group_reduce.cl
+3-1libclc/test/lit.cfg.py
+160-135 files

LLVM/project 20667a6libcxx/include optional, libcxx/test/std/iterators/iterator.range mandatory_inclusions.gen.py

[libc++] Include range access headers in `<optional>` only since C++26 (#214688)

Inclusions of internal range access headers address LWG4131 which
patches P3168R2 "Give `std::optional` Range Support". As P3168R2 is
certainly a new feature in C++26, these includes are unnecessary in old
modes.

It was reported that these increased the size of `<optional>` by ~8%, so
probably it is better to avoid such cost in old modes.
DeltaFile
+7-5libcxx/include/optional
+10-0libcxx/test/std/iterators/iterator.range/mandatory_inclusions.gen.py
+17-52 files

FreeBSD/ports 421c7fclang/kotlin22 Makefile

lang/kotlin22: Deprecate: the only consumer games/lwjgl3 now requires 2.4

PR:             296877
Approved by:    Michael Zhilin <mizhka at FreeBSD.org> (maintainer, timeout 3 weeks)
Sponsored by:   UNIS Labs
DeltaFile
+3-0lang/kotlin22/Makefile
+3-01 files

FreeBSD/ports 21b0f19games/lwjgl3 pkg-plist distinfo, games/lwjgl3/files patch-update-dependencies.xml patch-config_build-definitions.xml

games/lwjgl3: Update 3.4.1.g20260203 => 3.4.2

Changelog:
https://github.com/LWJGL/lwjgl3/releases/tag/3.4.2

Sponsored by:   UNIS Labs
DeltaFile
+0-69games/lwjgl3/files/patch-modules_lwjgl_jemalloc_src_generated_java_org_lwjgl_system_jemalloc_JEmalloc.java
+0-20games/lwjgl3/files/patch-update-dependencies.xml
+8-12games/lwjgl3/Makefile
+15-5games/lwjgl3/files/patch-config_build-definitions.xml
+7-11games/lwjgl3/distinfo
+4-2games/lwjgl3/pkg-plist
+34-1196 files

LLVM/project 8221a85llvm/lib/Target/NVPTX NVPTXISelDAGToDAG.cpp, llvm/test/CodeGen/NVPTX cache-hint-load-store.ll

[NVPTX] Drop cache hints on volatile loads/stores (#214830)

https://github.com/llvm/llvm-project/pull/204067 added cache hint
metadata support for NVPTX. I forgot to handle volatile loads/stores
correctly. Volatile loads only support .level::prefetch_size and
volatile stores don't support any cache hints. This PR drops unsupported
metadata for volatile loads/stores.
DeltaFile
+27-23llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp
+25-0llvm/test/CodeGen/NVPTX/cache-hint-load-store.ll
+52-232 files

LLVM/project db116a9libclc/test/math cos.cl

[libclc][test] Update cos.cl checks after fneg FP-options fix (#214906)

ceaff22ed2c3 ([Clang][CodeGen] Respect FP pragma options for fneg and
calls) scopes fneg's fast-math flags to the expression's own FPOptions
instead of the ambient IRBuilder state, so one fneg in cos.cl's
generated IR no longer carries contract. Regenerate check.

Co-authored-by: Claude Sonnet 5 <noreply at anthropic.com>
DeltaFile
+1-1libclc/test/math/cos.cl
+1-11 files

LLVM/project a44318bclang/include/clang/Driver SanitizerArgs.h, clang/lib/Driver SanitizerArgs.cpp

[Driver][KCFI] Forward -fsanitize-kcfi-hash= to cc1 (#214827)

-fsanitize-kcfi-hash= is a CC1Option that selects the hash algorithm
used to derive KCFI type IDs (xxHash64 or FNV-1a), but the driver never
claimed or forwarded it. As a result, invocations like

  clang -fsanitize=kcfi -fsanitize-kcfi-hash=FNV-1a foo.c

silently dropped the flag with an "argument unused during compilation"
warning; users had to route it through -Xclang to reach cc1. This is
particularly awkward for build systems (e.g. the Linux kernel) that want
to select FNV-1a for -fsanitize=kcfi builds.

Handle the option in SanitizerArgs alongside -fsanitize-kcfi-arity:
capture the last-specified value when KCFI is enabled and forward it to
cc1 as -fsanitize-kcfi-hash=<value>. Values are still validated by cc1's
tablegen-driven Values<"xxHash64,FNV-1a"> checker, so bad values produce
the usual "invalid value" diagnostic. When -fsanitize=kcfi is not
specified, the flag remains unclaimed and triggers

    [9 lines not shown]
DeltaFile
+32-0clang/test/Driver/fsanitize-cfi.c
+6-0clang/lib/Driver/SanitizerArgs.cpp
+2-0clang/include/clang/Driver/SanitizerArgs.h
+40-03 files

LLVM/project 49deb52llvm/lib/MC MCPseudoProbe.cpp, llvm/test/MC/ELF pseudoprobe-order.s

[MC] Make pseudo-probe divisions ordering stable (#214803)

**Problem**

`MCPseudoProbeSections::emit` sorts probe divisions only by section
ordinal.

Functions sharing a section will have a nondeterministic `unordered_map`
iteration order, producing *different .pseudo_probe bytes for identical
inputs.*

**Solution**


Use the function symbol name as a stable tie-breaker when section
ordinals match.

Add an MC regression test that reverses pseudo-probe insertion order and
requires byte-identical object files.

    [4 lines not shown]
DeltaFile
+31-0llvm/test/MC/ELF/pseudoprobe-order.s
+5-3llvm/lib/MC/MCPseudoProbe.cpp
+36-32 files

LLVM/project 12336bbllvm/lib/Target/RISCV RISCVInstrInfoZilsd.td RISCVInstrInfoF.td, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[RISC-V] Use an optional offset operand instead of zero-offset InstAliases

Introduce OptionalMemOffsetAsmOperand, which wraps a memory-offset
operand class into a variant with `IsOptional` set so that a memory
operand written without an offset, e.g. "lb a0, (a1)", parses with a
default offset of 0, and use it for a simm12_lo_optional operand. This
replaces the hand-written "(${rs1})" zero-offset InstAlias that every
load/store-style instruction needed (scalar and FP loads/stores, Zilsd,
jr/jalr and the .insn_i/.insn_s memory forms).

OptionalMemOffsetAsmOperand is somewhat complicated, but this makes it
easier to replace all the other optional zero memory operands which I
will do in follow-up commits, removing all the InstAlias duplication.

This change was assisted by AI.

Pull Request: https://github.com/llvm/llvm-project/pull/210901
DeltaFile
+47-50llvm/lib/Target/RISCV/RISCVInstrInfo.td
+20-13llvm/test/MC/RISCV/tlsdesc.s
+2-23llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
+19-0llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+2-5llvm/lib/Target/RISCV/RISCVInstrInfoZilsd.td
+2-5llvm/lib/Target/RISCV/RISCVInstrInfoF.td
+92-964 files not shown
+94-11010 files

LLVM/project f5f3c6abolt/include/bolt/Utils Utils.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Page out .dwo files

Split-DWARF inputs at big binaries scale ship 100+ GiB of .dwo
files. BOLT opened a fair number of them during readDebugInfo, putting
a lot of pressure on the OS memory management: mmap'd reads always
populate the page cache; with every .dwo mapped at once those pages
accumulated, refaulted, and registered as memory pressure that got the
process oomd-killed.

Now, .dwo page-cache pages are reclaimed as soon as BOLT is done with
each file: madvise(MADV_PAGEOUT) on the live mapping, then
posix_fadvise(POSIX_FADV_DONTNEED) once it is unmapped. Controlled by
-drop-dwo-page-cache, OFF by default, as it is unlikely upstream
will be processing gigantic sets of dwo files.
DeltaFile
+68-2bolt/lib/Core/BinaryContext.cpp
+37-0bolt/lib/Utils/Utils.cpp
+11-0bolt/include/bolt/Utils/Utils.h
+116-23 files

HardenedBSD/src 8e5d8b0sys/contrib/dev/ath/ath_hal/ar9300 ar9300_paprd.c, sys/dev/mpt mpt_raid.h mpt_raid.c

Merge remote-tracking branch 'rad/freebsd/current/main' into hardened/current/master
DeltaFile
+8-0sys/kern/kern_event.c
+3-3sys/dev/ocs_fc/ocs_hw.c
+1-1sys/dev/usb/wlan/if_urtw.c
+1-1sys/dev/mpt/mpt_raid.h
+1-1sys/dev/mpt/mpt_raid.c
+1-1sys/contrib/dev/ath/ath_hal/ar9300/ar9300_paprd.c
+15-71 files not shown
+16-77 files

NetBSD/src vSgWREGsys/kern sys_process_lwpstatus.c

   ptrace/procfs: Take lwp lock around process_read/write_(fp)regs(32).

   And verify that the lwp is in LSSTOP state before trying to read.
   Otherwise, we might catch an lwp while it's still running on the CPU,
   with all FPU state active, making the result unstable and tripping
   assertions on some architectures.

   PR port-amd64/60556: panic in process_read_fpregs_xmm
VersionDeltaFile
1.6+10-3sys/kern/sys_process_lwpstatus.c
+10-31 files

FreeBSD/src 3da5abasys/dev/igc igc_base.h igc_base.c

igc: Disable PCIe L1.2 on I225

I225 devices can incorrectly enter L1 substates while CLKREQ# is
asserted, both while idle and in D3.  Disable ASPM and PCI-PM L1.2 on
I225 to prevent the resulting packet loss.

Keep the I226 workaround ASPM-only because it addresses a separate
traffic exit latency observation.

PR:             265714

(cherry picked from commit 4a28d390f5fbae2483e88805559881b04ccf9a80)
DeltaFile
+22-20sys/dev/igc/if_igc.c
+29-0sys/dev/igc/igc_base.c
+1-0sys/dev/igc/igc_base.h
+52-203 files

FreeBSD/src 30f4095sys/dev/igc igc_base.c

igc: Apply ASPM L1.2 workaround to all I226 devices

Classify I226_LMVP and I226_BLANK_NVM as I226 silicon so they
receive the I226-specific ASPM L1.2 workaround.

PR:             279245
Pull-Request:   https://github.com/freebsd/freebsd-src/pull/2318

(cherry picked from commit cecb0f45cb83349c60514da38fddce83ad042468)
DeltaFile
+5-0sys/dev/igc/igc_base.c
+5-01 files

FreeBSD/src 94d7960sys/dev/ixgbe if_sriov.c

ixgbe: clear VF head write-back state on reset

VF reset and FLR do not clear the transmit head write-back address
registers.  A previous VF driver can therefore leave DMA write-back
enabled with a stale address for the next driver instance.

After consuming the reset request and disabling the VF queues, clear the
address registers for each queue belonging to that VF.  Derive the queue
count from the active IOV mode so peer queue state is not touched.

Linux commit dbf231af81a7 documents the hardware behavior.  The FreeBSD
implementation follows the local queue mapping and register interfaces.

(cherry picked from commit 6f940ca879cbf691ddf5605d852770cef27847b2)
DeltaFile
+13-0sys/dev/ixgbe/if_sriov.c
+13-01 files

FreeBSD/src 2ece404sys/dev/ixgbe ixgbe_common.c ixgbe_api.c

ixgbe: dispatch PBA string reads through EEPROM ops

E610 installs a device-specific PBA string reader, but the public API
always calls the generic implementation.  Dispatch through the EEPROM
operation table so device overrides are honored.

Initialize the generic operation for devices that use the ordinary
EEPROM representation.

Obtained from:  Intel ix 3.4.39

(cherry picked from commit 9cf1aa6e68e4b9dd4a77c67b7b902b9221198e7a)
DeltaFile
+3-1sys/dev/ixgbe/ixgbe_api.c
+1-0sys/dev/ixgbe/ixgbe_common.c
+4-12 files

FreeBSD/src 72b7612sys/dev/ixgbe ixgbe_common.c

ixgbe: avoid signed shift when assembling ETrack ID

Obtained from:  Intel ix 3.4.39

(cherry picked from commit 86869d77658aef48b2bab3e57517f88d7bd5389d)
DeltaFile
+4-4sys/dev/ixgbe/ixgbe_common.c
+4-41 files

LLVM/project 76e43e0bolt/include/bolt/Core BinaryContext.h, bolt/lib/Core BinaryContext.cpp

[BOLT] Create and release .dwo DWARF contexts incrementally

BOLT opened a DWARFContext for every .dwo during
readDebugInfo and kept them all alive until teardown. On large
split-DWARF targets that is tens of GiB held resident through
emission, the point of peak RSS.

Make the DWOCUs map a lazily-populated cache instead:

 * Use the newly added DWARFUnit::clearDWO()/hasDWO() to directly
   manage DWARFUnit's DIE caching mechanism.
 * BinaryContext::getDWOCU() opens a context on demand (keyed off a
   stable DWOId -> skeleton CU map).
 * Release contexts as soon as they are done with: all of them at the
   end of readDebugInfo, and per-bucket at the DWARF rewrite merge
   point.
 * Remove DWOCUs map, which became redundant and whose purpose can
   now be served by the new id-to-skeleton map, and then fetching
   the split CU from the skeleton via getNonSkeletonUnitDIE().

    [5 lines not shown]
DeltaFile
+110-52bolt/lib/Core/BinaryContext.cpp
+31-10bolt/include/bolt/Core/BinaryContext.h
+9-14bolt/lib/Rewrite/DWARFRewriter.cpp
+2-0bolt/lib/Rewrite/RewriteInstance.cpp
+152-764 files

FreeBSD/src 33fb0b4sys/dev/ixgbe ixgbe_common.c

ixgbe: fix host interface timeout detection

The host-interface polling loop was scaled from milliseconds to
microseconds, but its terminal test was left using the unscaled timeout.
Completion at that intermediate iteration can be reported as a timeout,
while actual expiry is not recognized and can accept stale status.

Test against the scaled loop bound used by the polling loop.

Fixes:          f46d75c90f5f ("ixgbe: improve MDIO performance by reducing semaphore/IPC delays")

(cherry picked from commit db2bf4553ce32fdcae00f6e7392a6c2010247dd6)
DeltaFile
+1-1sys/dev/ixgbe/ixgbe_common.c
+1-11 files

FreeBSD/src edf4edbsys/dev/ixgbe if_sriov.c

ixgbe: disable VF multicast reception for empty list

Clear ROMPE for an empty list and enable it only for a nonempty list.
FreeBSD already clears ROMPE when resetting a VF, so that part of the
DPDK change is not needed.

DPDK commit message

net/ixgbe: fix over using multicast table for VF

VMOLR.ROMPE allows a VF to receive packets matching the shared multicast
table.  Leaving it enabled after the VF removes its last multicast
address lets PF or peer-VF table entries continue selecting that VF.

Signed-off-by: Wei Zhao <wei.zhao1 at intel.com>
Acked-by: Qi Zhang <qi.z.zhang at intel.com>

Obtained from:  DPDK (dc5a6e7422)

(cherry picked from commit 786c71845f80b8bf733d07f9155de9740a8cbc19)
DeltaFile
+4-1sys/dev/ixgbe/if_sriov.c
+4-11 files

FreeBSD/src 4857be0sys/dev/ixgbe if_sriov.c

ixgbe: check negotiated API for VF queue query

The GET_QUEUES handler switches on msg[0], which contains the mailbox
command rather than the negotiated API version.  It therefore cannot
reject API 1.0 or an unnegotiated VF as intended.

Switch on the API version stored for the VF.

(cherry picked from commit 8d1d32942b810d613be45ea78939872711803c3b)
DeltaFile
+1-1sys/dev/ixgbe/if_sriov.c
+1-11 files

FreeBSD/src 23c1d52sys/dev/ixgbe if_sriov.c

ixgbe: reject VF requests before CTS

A VF that sends a non-reset request before completing reset negotiation
has not received CTS.  The PF ignores the request but currently reports
success, leaving the VF with a false view of the programmed state.

Return failure for the ignored request.  This restores the behavior lost
when the mailbox helpers were renamed.

Fixes:          36c516b31136 ("ixgbe: update if_sriov to use the new mailbox apis")

(cherry picked from commit 9fc83caf48e710c3f6457cab4bdb5e6c76e8be51)
DeltaFile
+1-1sys/dev/ixgbe/if_sriov.c
+1-11 files

FreeBSD/src 49fc8bbsys/dev/ixgbe ixgbe_common.c ixgbe_82598.c

ixgbe: avoid signed overflow in pause time calculation

pause_time is promoted to signed int before multiplication.  Its default
value of 65535 multiplied by 65537 exceeds INT_MAX and triggers UBSAN,
even though the result is assigned to a u32.

Make the multiplier unsigned so the calculation has the intended u32
semantics.  Linux commit 3b70683fc4d6 reported the failure in the generic
path and used the same mechanical correction.  The 82598-specific flow
control operation contains the identical expression, so correct it as well.

(cherry picked from commit 35374c3ec69aa87561431e6236706c485bdeeacc)
DeltaFile
+1-1sys/dev/ixgbe/ixgbe_common.c
+1-1sys/dev/ixgbe/ixgbe_82598.c
+2-22 files

FreeBSD/src c50447csys/dev/ixgbe ixgbe_type.h ixgbe_x550.c

ixgbe: fix unaligned access in ixgbe_update_flash_X550()

ixgbe_host_interface_command() treats its buffer as a u32 array.  The
local union contained only byte-sized fields, giving it one-byte stack
alignment and allowing unaligned accesses on strict-align systems.

Add a u32 member to the union to provide the required alignment and
pass that member to ixgbe_host_interface_command().

No functional change is expected on x86.

Obtained from:  Intel ix 3.4.39

(cherry picked from commit 8fa2a7503468abb5f863729c4e244d738239503d)
DeltaFile
+1-2sys/dev/ixgbe/ixgbe_x550.c
+1-0sys/dev/ixgbe/ixgbe_type.h
+2-22 files

FreeBSD/src 70df28asys/dev/ixgbe ixgbe_phy.c

ixgbe: retry incoherent SFP identifier reads

FreeBSD's I2C helper already retries failed transactions.  Limit this
new outer loop to successful reads with an invalid identifier so that
retry budget is not multiplied.

DPDK commit message

net/ixgbe: retry misbehaving SFP read

Some XGS-PON SFPs ACK I2C reads and return uninitialized data while
their microcontroller boots.  A bogus identifier can cause an otherwise
working module to be marked unsupported.

Retry the identifier read several times, checking for both successful
I2C completion and a valid SFP identifier.

Signed-off-by: Stephen Douthit <stephend at silicom-usa.com>
Signed-off-by: Jeff Daly <jeffd at silicom-usa.com>

    [5 lines not shown]
DeltaFile
+17-3sys/dev/ixgbe/ixgbe_phy.c
+17-31 files

FreeBSD/src fce4d00sys/dev/ixgbe ixgbe_82599.c

ixgbe: check EEPROM read in 82599 D3 path

DPDK commit message

net/ixgbe/base: fix unchecked return value

Check the return value from ixgbe_read_eeprom() before using the
control word to configure link disable during D3.

Fixes:          b7ad3713b958 ("ixgbe/base: allow to disable link on D3")
Cc: stable at dpdk.org

Signed-off-by: Barbara Skobiej <barbara.skobiej at intel.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>

Obtained from:  DPDK (eb3684b191)

(cherry picked from commit a8598143803d8db60568844cae86b0f330e49a1e)
DeltaFile
+5-3sys/dev/ixgbe/ixgbe_82599.c
+5-31 files

FreeBSD/src d535381sys/dev/ixgbe if_ix.c

ixgbe: avoid flow control counter overflow

DPDK commit message

net/ixgbe: fix flow control frame byte adjustment

LXONTXC and LXOFFTXC are 32-bit counters for transmitted XON and XOFF
packets.  Their deltas are summed and used to adjust the transmitted
packet and byte counters.

Perform the addition in 64 bits so it cannot wrap before the result is
used for the byte adjustment.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes:          af75078fece3 ("first public release")
Cc: stable at dpdk.org

Signed-off-by: Daniil Iskhakov <dish at amicon.ru>

    [5 lines not shown]
DeltaFile
+3-3sys/dev/ixgbe/if_ix.c
+3-31 files

FreeBSD/src 6b23a23sys/dev/ixgbe ixgbe_e610.c

ixgbe: copy ACI buffer before command retry

DPDK commit message

net/ixgbe/base: add missing buffer copy for ACI

Add the missing buffer copy in ixgbe_aci_send_cmd().

The retry path saves the original descriptor and allocates storage for
the command buffer so both can be restored before another attempt.  It
did not copy the original command buffer into that storage.

Fixes:          25b48e569f2f
Cc: stable at dpdk.org

Signed-off-by: Dan Nowlin <dan.nowlin at intel.com>
Signed-off-by: Yuan Wang <yuanx.wang at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>


    [3 lines not shown]
DeltaFile
+1-0sys/dev/ixgbe/ixgbe_e610.c
+1-01 files

FreeBSD/src b84a50bsys/dev/ixgbe if_ixv.c

ixv: fix multicast address enumeration

if_foreach_llmaddr() adds each callback return value to its running
count.  Returning the incremented count made the address indices grow
as 0, 1, 3, 7, and so on, eventually writing beyond the multicast
address array.

Return one address per callback and stop copying when the array is
full, matching the ixv-1.6.12 driver.

Fixes:          ff06a8dbb677 ("Mechanically convert ixgbe(4) to IfAPI")

(cherry picked from commit 6020de5ad154d54c8b9a838f28612c2182330c67)
DeltaFile
+4-2sys/dev/ixgbe/if_ixv.c
+4-21 files