snd_envy24ht: Fix out-of-bounds DMA buffer indexing
378e0c5c8967 reduced the number of playback channels from 5 to 1. This
introduced a regression, because the global DMA buffer indexing was not
adapted accordingly, which now results in kernel panics because of
out-of-bounds reads into the buffer. Additionally, because of wrong
indexing, recording channels ended up being serviced by the playback
part of envy24ht_intr().
Register 1 recording channel instead of 2 + sc->adcn, as the recording
DMA buffer only has room for 1 stereo stream. With 1 channel per
direction, give each channel the first index of its direction
(ENVY24HT_CHAN_PLAY_DAC1 and ENVY24HT_CHAN_REC_ADC1).
While here, fix the buffer wrap in envy24ht_r16sl(). It has to be
ch->size / ch->unit, but was copied verbatim from the 32-bit equivalent,
whose samples are twice as large, so 16-bit recording wrapped halfway
through the DMA buffer and never read the second half.
[6 lines not shown]
[LLVM][AArch64] Ensure compatible indices when converting dupq to dup_lane. (#238488)
instCombineSVEDupqLane was not verifying the subvector being splatted
matched the one being inserted. At the same time I've also added a check
to ensure the quad index is zero because otherwise we'll generate the
wrong result for out-of-range indices.
Fixes https://github.com/llvm/llvm-project/issues/235610
games/anki: fix build on powerpc64le
The prefetched node modules are created on amd64, where yarn also fetches
the FreeBSD/amd64 builds of esbuild, rollup and @parcel/watcher. On other
archs yarn skips them, so the archive doesn't match distinfo. Make yarn
resolve them for x64 on powerpc64le as well.
esbuild and rollup don't have FreeBSD binaries for powerpc64le, so use their
WebAssembly builds instead. Also let the build system know about powerpc64.
(cherry picked from commit ccf569423575b7fd8e9b87a7055c4466f02da305)
Update botan3 to version 3.14.0
CVE fixes from changelog since version 3.9.0:
CVE-2026-118770 Fix a use after
free in the TLS asio integration which depending on application
usage patterns may allow leaking heap memory to the peer.
CVE-2026-118771 Fix a bug in TLS 1.3 which could allow an
unauthenticated peer to pin unlimited amounts of memory in the
handshake by sending many dummy ChangeCipherSpec messages.
CVE-2026-118766 Fix a blind SSRF during OCSP request processing.
A malicious OCSP responder or network attacker could cause the
application to perform a blind GET to an internal service.
CVE-2026-118765 Fix a bug in AutoSeeded_RNG, affecting only platforms
without a system RNG, where an API sequence of calling first clear,
followed by randomize writing to an empty buffer, resulted in the RNG
[22 lines not shown]
[GlobalISel] Fix dominance when legalizing PHI for results of invoke (#234603)
PHI legalization inserts type conversions before the first terminator so that
they execute on unwind edges. However, an invoke result is defined after
G_INVOKE_REGION_START (which can be the first terminator). Therefore conversions
of these results are inserted before the defs, causing a use before def.
Keep the existing insertion point for values available before the invoke. For
anything that is defined later, move the conversion point to after the def.
Assisted-by: Codex
[AArch64] Don't fold expandloads/compressstores into (de)interleave ops (#239160)
Previously, `performVector(De)interleaveCombine` would miscompile by
combining expandloads and compressstores with deinterleaves and
interleaves respectively.
This is fixed by updating `ISD::isNormalMaskedLoad()` and
`ISD::isNormalMaskedStore()` to exclude isExpandingLoad() and
isCompressingStore().
[mlir][ODS] Allow a space-only separator for bit enums
Bit enums required a separator containing '|' or ',', so a flag set
could not use the bare keyword syntax of LLVM IR, e.g. `nuw nsw`.
Dialects that want it, such as ClangIR's overflow flags, had to hand-write
a parser and printer for an EnumProp.
Allow `separator = " "` on new-style BitEnums. The generated FieldParser
then reads case keywords until the next token is not one, symbolize
splits on spaces, and the op-format `enum` directive parses the same
way. Like the existing check for a separator literal, the format
verifier rejects a case literal right after such an enum. The separator
must now be '|', ',', or a space ' ', where '|' and ',' may still be
surrounded by spaces, so strings such as "||" are rejected. Legacy
BitEnumAttr keeps requiring '|' or ','.
Assisted-by: Claude Code (Claude Opus 5.5).
AMDGPUCodeGenPrepare.cpp - fix MSVC "warning C4018: '<=': signed/unsigned mismatch" warnings. NFC. (#239168)
A possibly futile attempt to get /WX builds working again
[MLIR] Add TableGen "variant" of MLIRSupport (#239165)
mlir-src-sharder currently depends on MLIRSupport. In a dylib build,
this brings in a dependency on an LLVM shared library. Since
mlir-src-sharder is a TableGen tool, it links statically against
LLVMSupport, which introduces an ODR violation caught at link-time on
Windows in an LLVM dylib build.
To work around this issue, this PR introduces MLIRSupport_tablegen, to
be used by mlir-src-sharder and other MLIR TableGen tools. This always
links against a static LLVMSupport and prevents ODR violations.
This approach follows the precedent set by clangSupport_tablegen.
The effort to build LLVM as a dylib is tracked in #109483.
[IndVarSimplify] Use context to prove a narrow IV def non-negative
When IndVars widens an IV, it checks for each narrow def
(the IV and values computed from it) whether it is
non-negative on every iteration.
If it is, zext and sext of it are equal. Then when IndVars
idens the def's users, they can choose to use either
the sext or zext of the def.
Previously, we didn't use context to prove the non-negativity of def.
Now ask SCEV about the def non-negativity at its context -
the def instruction itself.
This allows SCEV to infer facts from the dominating guards and assumes.
This in turn allows eliminating unnecessary truncs/zexts. E.g. in
if (m > 0)
[9 lines not shown]
[IndVarSimplify][SCEV][NFC] Add tests for LFTR losing the constant max trip count
When LFTR of IndVars rewrites a loop exit like i >s C
to i + 1 == smax(start, C + 1),
SCEV's constant max backedge-taken count of the loop gets worse.
Add tests showing it.
Assisted-By: Claude
[LoopVectorize][NFC] Add tests for runtime checks with a widened IV index
In
if (start <u len && start - 32 <u len) // len >=s 0
for (int32_t i = start; i < n; i++) a[i] = a[i - 32];
i - 32 >=s 0, so the distance between a[i] and a[i - 32] is always 32.
If the loop has an i64 IV and i - 32 is computed in i64, it is
vectorized without runtime checks.
If i - 32 is computed in i32 and zero-extended, the vectorizer
emits an overflow check and an alias check.
Add tests for both forms.
Assisted-By: Claude
[IndVarSimplify][NFC] Add a negative test for zext elimination
Add a test for a zext of an nsw add of a sign-extended IV, where the
add may be negative.
Also rewrite a stale comment of an existing test.
Assisted-By: Claude