Merge tag 'ata-7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux
Pull ata fix from Niklas Cassel:
- Set CHECK CONDITION for failed ATAPI commands.
Since commit 2e1d2e65e773 ("ata: libata-scsi: terminate deferred
commands on time out") failed ATAPI commands incorrectly stopped
having CHECK CONDITION set for commands that had a SCSI midlayer
byte set by scsi_check_sense(). SG_IO users therefore saw failed
ATAPI commands as successful (Hengyu)
* tag 'ata-7.3-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
ata: libata-scsi: do not lose CHECK CONDITION for failed ATAPI commands
[lldb][test][Windows] Test attaching to a process past MAX_PATH (#229396)
This patch adds a test to attempt attaching to a process past
`MAX_PATH`.
Spawn the longpath test program from a path longer than `MAX_PATH`,
attach to it by pid from an empty target, and check that the target has
a known architecture, frame 0 is in a module and the executable is
loaded.
This is the lldb-server attach path that asserts in
`RegisterContextWindows_x86_64` when Host::GetProcessInfo cannot not
open the image:
https://github.com/llvm/llvm-project/blob/28f349c30963e5ab71c9325e032ddfa6464c3f0e/lldb/source/Plugins/Process/Utility/RegisterContextWindows_x86_64.cpp#L138
[LV] Flatten reduction handling in preparePlanForEpilogueVectorL (NFC) (#229416)
The else branch after the AnyOf/FindIV handling is redundant due to
early continue.
Remove it and re-use ReductionPhi and RK instead of re-casting R.
This slightly simplifies the code and reduces diff in planned follow-up.
[libc++abi] Define `__cxa_thread_atexit` on platforms that need it (#186054)
Commit 3c100d5d548d removed the definition of __cxa_thread_atexit from
all platforms except Fuchsia and Linux. This broke the use of
`thread_local` variables with destructors on other downstream
configurations that needed the definition.
This patch restores __cxa_thread_atexit on (presumably) all platforms
that need it.
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
[libc++] Enable _LIBCPP_DIAGNOSE_IF on AppleClang (#229187)
_LIBCPP_DIAGNOSE_IF was introduced in Clang 20, so it is supported by
AppleClang now. Also drop the (now dead) conditional for Clang > 20,
which is always true since libc++ supports Clang >= 21.
[libc++] Guard unchecked uses of wchar_t and char8_t in tests (#229255)
A few places in the test suite were not properly guarding based on
whether wide characters or char8_t are available.
dns/ddclient: add force refresh (#5758)
* dns/ddclient: add force refresh
Add a "Force refresh" command to the Accounts grid, per row for enabled
accounts and for the selected rows (native backend only). The cached
state of the requested accounts is cleared in a locked state while the
service is stopped, so the service updates them on startup using the
regular account implementation, even when the detected address equals
the one sent before. Normal polling is unchanged.
The grid is reloaded until the requested accounts show a new update
time, accounts without an update are reported after 30 seconds.
Refs #5757
* dns/ddclient: force refresh, simplify as reviewed
Reset the cached state (-r/--reset-state) and restart the service
[9 lines not shown]
[AArch64] Use multi-vector intrinsics for masked load/store users of predicate-as-counter
If the user of the original wide mask is a masked load or store
intrinsic (matching the element size of the predicate-as-counter),
rewrite it directly to a masked multi-vector load/store.
This avoids materializing the vector mask and is easier to handle here
than later (e.g. in SelectionDAG), since we do not need to match the
concatenation of all `pext` segments of the predicate-as-counter.
Assisted-by: Codex
[AArch64] Avoid materializing full masks for extractelement users of predicate-as-counter
If the user of the original wide mask is an `extractelement` and the
index is known to be within the first segment of the
predicate-as-counter, replace it with `extractelement(pext(counter, 0))`.
This avoids materializing the vector mask and produces a form that can
be folded into a conditional branch when the predicate-as-counter is
produced by a `whilelo`.
Assisted-by: Codex
[AArch64] Add predicate-as-counter loop rewrite pass
This patch adds an AArch64 IR loop pass that rewrites wide loop-carried
`llvm.get.active.lane.mask` phis to predicate-as-counter `whilelo` phis
(for SVE2.1 or streaming SME2 targets).
Users of the original mask are preserved by materializing vector
predicates with `aarch64.sve.pext`.
The element size and vector scale (VLx2 or VLx4) of the
predicate-as-counter is inferred from the mask load/store users within
the loop. These could be optimized to multi-vector loads/stores (though
that is not included in this patch).
For example, a loop like:
```
entry:
%step = vscale x 64
[32 lines not shown]
[lldb][Windows] Don't hang unregistering a pipe before its monitor reads (#228111)
On Windows, `MainLoop` watches each pipe with a helper thread that waits
in a `ReadFile`. On shutdown, `~PipeEvent` cancels that read once and
then waits for the thread. If the thread hadn't started its read yet,
the cancel misses it, and the shutdown waits forever while the pipe
stays open.
`lldb-dap` hit this at exit, which causes the `TestDAP_io` timeouts on
Windows CI.
This patch makes it so overlapped reads now also wait on a stop event,
so they can't miss a stop. Synchronous reads can't be interrupted that
way, so the destructor keeps cancelling until the thread exits. It now
waits for an event the thread sets on exit, not the thread handle.
The new unit tests hang without the fix, and `lldb-dap` exits in 10,000
of 10,000 runs under load.
rdar://188800539
[AMDGPU[ Expand `av` built-ins and intrinsics to b16/b32/b64
They previously only supported b128, but there is no technical reason why we cannot support all bit widths.
Disclaimer: This is largely Claude assisted. I ran it in short self-contained bursts (to ensure the output of each step was reviewable) to do all the boring steps of plumbing this through the stack. I also manually reverified and cleaned up all the files one by one between each steps.
Assisted-by: Claude Opus 5.5
[flang][Parser] Make CharBlock inherit from llvm::StringRef (#228482)
These two classes implement very similar functionality, with StringRef
having a much richer interface.
There are some minor functional differences:
1. CharBlock(nullptr) constructor is deleted, the default constructor
should be used instead.
2. operator[]/front()/back() now return char by value, not const char&.
Use *x.begin()[i] instead of x[i] when a reference is required.
www/dooble: Fix compiling on 16-CURRENT
In file included from Source/dooble_charts_file.cc:30:
In file included from /usr/local/include/qt6/QtQml/QJSEngine:1:
In file included from /usr/local/include/qt6/QtQml/qjsengine.h:13:
/usr/local/include/qt6/QtCore/qtimezone.h:86:9: error: '= delete' with a message is a C++2c extension [-Werror,-Wc++26-extensions]
86 | "Would be treated as int offsetSeconds. "
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87 | "Use QTimeZone::UTC or QTimeZone::LocalTime instead.");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/qt6/QtCore/qcompilerdetection.h:1046:49: note: expanded from macro 'Q_DECL_EQ_DELETE_X'
1046 | # define Q_DECL_EQ_DELETE_X(reason) = delete(reason)
| ^~~~~~
PR: 299033
Reported by: pkg-fallout
Sponsored by: UNIS Labs (vvd, commit patch)
MFH: 2026Q4
(cherry picked from commit f45ab0387ebdd351b5164e7cdc9898a640c5aa77)
[SLP]Vectorize aggregates of bit packs as a single vector
An insertvalue aggregate built of or-packs of zero-extended fields (e.g.
the { i64, i64 } returned for std::array<int16_t, 8>) was vectorized
pack by pack, leaving the vectors half as wide as possible. Vectorize
the fields of all packs as one tree and bitcast the result to the vector
of the packs.
Fixes #48223
Assisted-by: Cursor
Reviewers: bababuck, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/228955
NAS-144033 / 27.0.0 / Tidy up HSTS options (by themylogin) (#19958)
* `max-age=63072000` was set by an external contributor in 2021 without
any explanation why: https://github.com/truenas/middleware/pull/7752.31536000 satisfies both the STIGs and OMB.
* `preload` is not in any set of security requirements yet. And it’s
kind on unkind to users to enable it by just one click; it’ll be stuck
in the global database for a year. Let's remove this option until some
security requirement set says it is required.
Original PR: https://github.com/truenas/middleware/pull/19928
Co-authored-by: themylogin <themylogin at gmail.com>
www/dooble: Fix compiling on 16-CURRENT
In file included from Source/dooble_charts_file.cc:30:
In file included from /usr/local/include/qt6/QtQml/QJSEngine:1:
In file included from /usr/local/include/qt6/QtQml/qjsengine.h:13:
/usr/local/include/qt6/QtCore/qtimezone.h:86:9: error: '= delete' with a message is a C++2c extension [-Werror,-Wc++26-extensions]
86 | "Would be treated as int offsetSeconds. "
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87 | "Use QTimeZone::UTC or QTimeZone::LocalTime instead.");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/qt6/QtCore/qcompilerdetection.h:1046:49: note: expanded from macro 'Q_DECL_EQ_DELETE_X'
1046 | # define Q_DECL_EQ_DELETE_X(reason) = delete(reason)
| ^~~~~~
PR: 299033
Reported by: pkg-fallout
Sponsored by: UNIS Labs (vvd, commit patch)
MFH: 2026Q4
[SLP]Vectorize aggregates of bit packs as a single vector
An insertvalue aggregate built of or-packs of zero-extended fields (e.g.
the { i64, i64 } returned for std::array<int16_t, 8>) was vectorized
pack by pack, leaving the vectors half as wide as possible. Vectorize
the fields of all packs as one tree and bitcast the result to the vector
of the packs.
Fixes #48223
Assisted-by: Cursor
Reviewers: bababuck, RKSimon
Pull Request: https://github.com/llvm/llvm-project/pull/228955