[clang] Fix RecursiveASTVisitor to traverse the exception parameter in ObjCAtCatchStmt. (#216125)
Ensures that the catch parameter declaration (the exception variable) in
an Objective-C @catch block is visited during AST traversal. Previously,
this declaration was skipped. A unit test has been added to verify the
fix.
iflib: actually disable simple_tx when ALTQ is in use
When getting some baseline ALTQ numbers, I noticed that
if simlple_tx is enabled in kenv, we wind up re-setting the transmit
routine, but I neglected to actually clear ctx->ifc_sysctl_simple_tx.
That leads to many different panics as we run a mixture of mp_ring
and simple_tx.
Pointy-hat to: gallatin
Sponsored by: Netflix
RuntimeLibcalls: Fix AArch64 wrongly typed long-double libcalls
Respect the triple's LongDoubleFormat.
AArch64SystemLibrary added the fp128-typed frexpl/ldexpl and exp10l without a
long-double-format guard, so triples where long double is IEEE double
(Darwin, Windows, Android) were emitting l suffixed calls with the wrong
type.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
RuntimeLibcalls: Stop improperly reporting fp128 long double calls on ARM (#215917)
32-bit ARM's long double is IEEE double, so l suffixed calls do not have
fp128 type. Additionally, the f128 typed / suffixed functions are not built in
glibc as __HAVE_FLOAT128 is defined to 0 in the arch config. Remove the
testcases which emitted nonexistent or wrongly typed calls and replace with
error tests.
Related: #44744
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
---------
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
Co-authored-by: Paul Kirth <paulkirth at google.com>
Merge tag 'drm-fixes-2026-08-15' of https://gitlab.freedesktop.org/drm/kernel
Pull drm fixes from Dave Airlie:
"While this is large for rc8 time but also AI driven fixes is a lot of
it, we had a more traditional screw up, and a regression was just
found in the fair scheduling patches that went in back in rc1. This
reverts the fair scheduler back to an option and sets the default back
to what it should have been. We might have been a bit overly zealous
in switching over, but at least it feels more normal than the AI
driven fixes.
Apart from the scheduler, it's mostly amdgpu and xe fixes, with some
misc fixes to the log code and connector code.
scheduler:
- revert fair scheduler patches due to regression
- mark fair as experimental
connector:
[58 lines not shown]
[lldb] Run TestDenyAttach only with locally built debug server (#216399)
The PT_DENY_ATTACH handling is in debugserver, so a system debugserver
still reports lost connection. Added @skipIfOutOfTreeDebugserver
[ABI][CIR][NFC] Mark the last X86AVXABILevel in the enum (#216339)
CIR CallConvLowering keeps one classifier per AVX level, so it sizes an
array by the number of levels. It got that number as the current end of
the list plus one, which stops being the count the moment a level is
added after the current end. A runtime assert was necessary to guard the
index.
The enum now names its own last enumerator and CallConvLowering derives
the count from it.
Follow-up to review feedback deferred on #215118.
Assisted-by: Cursor / claude-opus-5
[libc] Fix link errors in some hermetic tests (#216406)
There is a dependency loop between the __libc__ and the
LibcHermeticTestSupport targets. If a compiler introduces a call to
`extern "C" memcpy` to some __libc__ function, then we need to link
LibcHermeticTestSupport to satisfy that. But the hermetic implementation
simply forwards to LIBC_NAMESPACE::memcpy, which is in the __libc__
target.
Linking the libc library twice is a simple though unsatisfying solution
to this problem. I'm working on a more principled fix, but that is going
to take a while longer, so I'm adding this in the mean time.
Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
Pull clk fixes from Stephen Boyd:
"Fixes for the Qualcomm, Rockchip, and SpacemiT clk drivers:
- Keep audio working on Rockchip rk3588 by skipping disabling unused
clks
- Fix SpacemiT USB2 clk data so they actually work and keep the HDMA
bus clk enabled to avoid system hangs
- Avoid clk hangs on Qualcomm Eliza display hardware and revert a
patch that breaks PCIe on some Qualcomm platforms"
* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
dt-bindings: clock: Replace bouncing emails
Revert "clk: qcom: regmap-phy-mux: Rework the implementation"
clk: spacemit: k3: set hdma clock as critical
clk: spacemit: k3: fix USB2 bus clock
[2 lines not shown]
[CIR] Mark record members as data, pad, or empty in CIRGen (#215175)
A record type still can't say whether it carries anything for argument
passing. The x86_64 classifier has to know that before it can drop an
empty class from a signature.
A field's mark comes from `isEmptyFieldForABI`, ported from
`isEmptyField` in `ABIInfoImpl.cpp`. Taking the ABI predicate rather
than the layout one is what gets C right. Given `struct E {}`, a struct
holding one `E` is empty for the ABI in C but not in C++.
An assert on every record checks the marks against
`isEmptyRecordForABI`, so the existing `-fclangir` tests exercise them.
One case is now NYI. A `[[no_unique_address]]` field that
`isEmptyFieldForLayout` drops from the layout can still hold ABI data.
With the field gone there is no member left to mark, so CIRGen says so
rather than emit a record that understates what it holds.
[4 lines not shown]
[lldb] Read `read-only` pointee data from the object file in `GetPointeeData` (#213372)
## Summary
`ValueObject::GetPointeeData` reads multi-element pointee data through
`eAddressTypeLoad` by calling
`Target::ReadMemory` with `force_live_memory=true`. That forces the read
to
come from live process memory and skips the object file's read-only
section cache.
For data that lives in a read-only section (e.g. a `const char *` or
**array**
in `.rodata`), the correct bytes may only be available from the object
file rather than the live process image. This is common with core files,
where read-only, file-backed pages are frequently not dumped: reading
such a pointee then returns stale or empty data (for example, a
`const char *` summary rendering as **""** instead of its real
contents).
[52 lines not shown]
[lldb] Wrap Target::GetAPIMutex() into a Lockable handle (NFC) (#212872)
While implementing #208242, we realized that we needed a Lockable
wrapper for the Target's API Mutex that could skip the locking on
re-entrant threads (when a command (i.e `bt`) triggers scripted
extension (i.e `ScriptedFrameProvider`) that uses SBAPI (i.e.
`SBFrame`), and still behave as a normal mutex otherwise. However, since
`Target::GetAPIMutex()` returns a `std::recursive_mutex&`, that can't
represent "no synchronization at all".
This is why this PR introduces `TargetAPILock`, a small Lockable type
that behaves exactly like `std::recursive_mutex`, with no RAII of its
own, so callers can wrap it in `std::lock_guard`/`std::unique_lock` like
they would any other Lockable.
A `TargetAPILock` is bound to a `Target` rather than to a specific
mutex, so `lock()`/`try_lock()` resolve which real mutex to use fresh on
every call instead of caching one resolution for the handle's lifetime.
`unlock()` replays whatever the matching `lock()`/`try_lock()` resolved
[18 lines not shown]
Merge tag 'spi-fix-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi fixes from Mark Brown:
"A couple of relatively minor (but as ever important if you're hitting
them) and straightforward driver specific fixes, plus one new device
ID documented in the DT bindings for the DesignWare controller"
* tag 'spi-fix-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
spi: virtio: mark device ready before registering the controller
spi: dw: fix wrong RX_SAMPLE_DLY setting after resume
spi: dt-bindings: snps,dw-apb-ssi: Document Axiado AX3005
iflib: Initialize the VFLR task unconditionally
The VFLR task was initialized only from drivers MSI-X interrupt
assignment paths. ixl's legacy interrupt handler can nevertheless defer
VFLR work, leaving an uninitialized task. Even with MSI-X, the admin
interrupt was established before the task was initialized.
Initialize it alongside the other private tasks. The existing detach
check and private-taskqueue drains then cover its lifecycle for every
interrupt mode and registration failure.
MFC after: 2 weeks
Sponsored by: BBOX.io
Merge tag 'regulator-fix-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fixes from Mark Brown:
"There's one fix here for a data entry error in the voltage mapping in
the fp9931 driver, and a device ID addition for a LDO in the Qualcomm
PM8350b that's just a trivial quirk"
* tag 'regulator-fix-v7.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: fp9931: Fix VPOS/VNEG voltage selector table
regulator: qcom-rpmh: Add support for PM8350B
regulator: dt-bindings: qcom,rpmh: Add support for PM8350B
[MLIR][NVVM] Spell strict assembly properties directly
Bind every NVVM inherent property in its operation assembly format and
re-enable strict property parsing for the dialect. Use direct named clauses
for declarative formats and custom MMA parsers while retaining dictionaries
for discardable attributes.
Assisted-by: Codex
iflib: Add an admin task detach fail point
Add an exact-device fail point immediately after the admin task checks
IFC_IN_DETACH. This makes the detach race reproducible without affecting
another interface.
Use a bounded delay to keep the task active while detach enters the
taskqueue drain. Mark the point nonsleepable as a safety backstop, and
document a one-shot test for verifying that deregistration drains an
already-running task before ether_ifdetach().
Reviewed by: gallatin, kgalazka
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58720
[SLP] Account for fma fusion when vectorizing an ordered fadd reduction (#210399)
An ordered fadd reduction of contractable fmuls lowers to a chain of
fmas in scalar code. SLP vectorizes the fmul operand tree and leaves the
fadds as an ordered scalar chain, which breaks that fusion, but the
ordered-reduction cost path hardcodes ReductionCost = 0 and never
accounts for it. Change the fusion saving per reduced fmul so the cost
reflects the lost fusion.
The saving is zero on targets without a faster fma, so only targets that
actually fuse are affected.
iflib: Drain configuration tasks before interface detach
iflib_device_deregister() sets IFC_IN_DETACH before removing the
interface, but a task which already passed its detach check can still
report a link change. This can re-arm if_linktask after
ether_ifdetach() has drained it and leave work pending across queue
teardown.
Drain the entire private taskqueue before ether_ifdetach(). Drivers
may register their own link-related configuration tasks there, so
draining only the framework admin task leaves the same race for those
drivers.
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D58452
Co-authored-by: Andrew Gallatin <gallatin at FreeBSD.org>
Co-authored-by: Kevin Bowling <kbowling at FreeBSD.org>
sysutils/logstash94: Fix runtime: restrict JAVA_VERSION for 21 only
Logstash 9.4 supports Java 21 only.
1) Logstash 9.4 doesn't support Java 17:
https://www.elastic.co/docs/release-notes/logstash#logstash-9.4.0-release-notes
"Logstash now also requires Java 21 or later, and Java 17 is no longer supported."
2) Logstash 9.4 in the port (precompiled) doesn't support Java 25.
There's an error after start:
===
[2026-08-14T09:38:23,211][FATAL][org.logstash.Logstash ][main] uncaught error (in thread Ruby-0-Thread-11: /usr/local/logstash/logstash-core/lib/logstash/java_pipeline.rb:335)
java.lang.NoSuchMethodError: 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()'
at com.google.googlejavaformat.java.JavaInput.buildToks(com/google/googlejavaformat/java/JavaInput.java:367)
at com.google.googlejavaformat.java.JavaInput.buildToks(com/google/googlejavaformat/java/JavaInput.java:335)
at com.google.googlejavaformat.java.JavaInput.<init>(com/google/googlejavaformat/java/JavaInput.java:277)
at com.google.googlejavaformat.java.Formatter.getFormatReplacements(com/google/googlejavaformat/java/Formatter.java:270)
at com.google.googlejavaformat.java.Formatter.formatSource(com/google/googlejavaformat/java/Formatter.java:257)
at com.google.googlejavaformat.java.Formatter.formatSource(com/google/googlejavaformat/java/Formatter.java:223)
[14 lines not shown]
[CIR] Run callconv lowering in the tests that opted out of it (#216396)
48 CIR tests carried `-fno-clangir-call-conv-lowering` with a TODO to
drop it once the pass handled vector types, the long double wrapper,
f16, and f128. The classifier takes all of those now, so the opt-out and
its TODO go and the tests exercise the pass.
No CHECK line moves, so the IR these tests already pinned is what the
pass produces.
Assisted-by: Cursor / claude-opus-5
sysutils/logstash94: Fix runtime: restrict JAVA_VERSION for 21 only
Logstash 9.4 supports Java 21 only.
1) Logstash 9.4 doesn't support Java 17:
https://www.elastic.co/docs/release-notes/logstash#logstash-9.4.0-release-notes
"Logstash now also requires Java 21 or later, and Java 17 is no longer supported."
2) Logstash 9.4 in the port (precompiled) doesn't support Java 25.
There's an error after start:
===
[2026-08-14T09:38:23,211][FATAL][org.logstash.Logstash ][main] uncaught error (in thread Ruby-0-Thread-11: /usr/local/logstash/logstash-core/lib/logstash/java_pipeline.rb:335)
java.lang.NoSuchMethodError: 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()'
at com.google.googlejavaformat.java.JavaInput.buildToks(com/google/googlejavaformat/java/JavaInput.java:367)
at com.google.googlejavaformat.java.JavaInput.buildToks(com/google/googlejavaformat/java/JavaInput.java:335)
at com.google.googlejavaformat.java.JavaInput.<init>(com/google/googlejavaformat/java/JavaInput.java:277)
at com.google.googlejavaformat.java.Formatter.getFormatReplacements(com/google/googlejavaformat/java/Formatter.java:270)
at com.google.googlejavaformat.java.Formatter.formatSource(com/google/googlejavaformat/java/Formatter.java:257)
at com.google.googlejavaformat.java.Formatter.formatSource(com/google/googlejavaformat/java/Formatter.java:223)
[12 lines not shown]
[SelectionDAG] SimplifySetCC - Improve shifted range checks with add offsets (#207955)
SelectionDAG currently shrinks large unsigned compare immediates by
shifting the compare operand as a whole. For top-bit range checks that
have been canonicalized to `icmp ult (add x, C), Width`, this can
preserve the pre-shift add and lead to extra masks, zero-extends, or
large immediates.
When the add offset and range width are aligned to the selected shift
and the original unsigned range does not wrap, move the offset after the
shift instead. This lets cases such as checking whether `x >> 48` is in
`[10, 20)` lower to shift/add/cmp.
Fixes #172674
Merge tag 'regmap-fix-v7.2-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap
Pull regmap fixes from Mark Brown:
"A couple more fixes for regmap, this time for the SoundWire MBQ
support:
- Several drivers omit the readable_reg callback and it's generally
optional in regmap but the MBQ code had an assumption that one was
present added in one of the APIs, remove that
- The timeout and retry intervals were swapped in read_poll_timeout()
for soundwire-mbq"
* tag 'regmap-fix-v7.2-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
regmap: sdw-mbq: don't call an unset readable_reg callback
regmap: sdw-mbq: Fix swap of timeout and retry times
iflib: Add registration failure injection points
Add six device-scoped fail(9) points at the registration milestones
needed to exercise each unwind path. An exact, runtime-only device
selector prevents unrelated iflib devices from consuming an armed point.
Mark the points non-sleepable because registration holds the ifnet and
context locks. Document one-shot operation and bus-address reprobe so a
failed attach can be recovered without another kernel build.
Reviewed by: gallatin
MFC after: 2 weeks
Sponsored by: BBOX.io
Differential Revision: https://reviews.freebsd.org/D58722