unit/zap: uint64 keys
Add coverage for binary uint64-array keys (ZAP_FLAG_UINT64_KEY), the key
type used by the dedup table and block reference table. Covers the
by-dnode operations on such a ZAP: add, lookup, length, lookup_length,
update and remove.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18639
[lldb] Use the source name when the linkage name is not mangled (#205701)
When a DW_TAG_subprogram has a DW_AT_linkage_name that is not actually a
mangled name and differs from DW_AT_name, lldb used the linkage name as
the function's display name. For C++ the linkage name demangles back to
the source name, but a plain symbol such as __main_argc_argv does not,
so the function showed up under its raw linkage name in backtraces,
breakpoint locations and `image lookup`, and was not findable by its
source name.
This happens on WebAssembly: wasi-libc renames `int main(int, char**)`
to its __main_argc_argv argv-passing wrapper, keeping DW_AT_name "main"
but recording DW_AT_linkage_name "__main_argc_argv".
When the linkage name has no recognized mangling scheme, use DW_AT_name
as the display name and keep the linkage name as the symbol, so lookups
by either name still resolve.
[OpenACC] Add pass `ACCEmitRemarksPrivate`. (#205824)
The pass emits remarks describing `acc.firstprivate` and `acc.private`
associated with OpenACC compute and loop constructs.
Assisted-by: Claude Code
[clang][bytecode] Don't ignore discarded `DeclRefExpr`s (#204165)
Check for the evaluating decl in `GetRefGlobal` so we don't fail too
early. We also need to mark the `APValue` as constexpr-unknown when
returning it, even though the backing `Descriptor` is not marked
constexpr-unknown.
This fixes the last differences in `constant-expression-p2280r4.cpp`.
Merge tag 'gpio-fixes-for-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull gpio fixes from Bartosz Golaszewski:
- fix locking context with shared GPIOs in gpio-tegra
- fix IRQ domain leak in error path in gpio-davinci
- fix returning a potentially uninitialized integer in
gpiochip_set_multiple()
- use raw spinlock in gpio-eic-sprd and gpio-sch to address locking
context issues
- bail out of probe() if registering the GPIO chip fails in gpio-mlxbf3
- fix varible type for storing the "ngpios" property in gpio-pisosr
- fix out-of-bounds pin access in GPIO ACPI
[22 lines not shown]
net-p2p/amule: Update to 3.0.1
- Use src tarball from release assets
- Add GEOIP option default ON
- Turn OFF TRANSLATED_MANPAGES so we can use pre-rendered man translations
- Remove upstreamed patches
ChangeLog: https://github.com/amule-org/amule/releases/tag/3.0.1
[SLP] Add pre-commit tests for zero-tested OR/UMax reductions (NFC) (#205738)
Add pre-commit tests for scalar OR/UMax reductions whose result is
only used by an eq/ne-zero comparison.
[mlir][acc] Drop redundant `acc.terminator` erase that broke atomic capture under `if` (#205731)
Example:
```fortran
!$acc parallel if(cond)
!$acc atomic capture
a = a + 1
b = a
!$acc end atomic
!$acc end parallel
```
In this code, the `if` clause triggers host-fallback specialization. A
blanket `acc.terminator` erase pattern strips the implicit terminator of
the still-present `acc.atomic.capture`, so the later `getTerminator()`
trips `mightHaveTerminator()`.
Fix: remove that pattern — every ACC region op already erases its own
terminator when it unwraps/inlines, so it was redundant (and only raced
ahead to break this case). Adds a lit test.
Merge tag 'pwrseq-fixes-for-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull power sequencing fixes from Bartosz Golaszewski:
- fix an ABBA deadlock in pwrseq unregister path
- fix a use-after-free bug in pwrseq core
- sort PCI device IDs in ascending order in pwrseq-pcie-m2
* tag 'pwrseq-fixes-for-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
power: sequencing: fix ABBA deadlock in pwrseq_device_unregister()
power: sequencing: pcie-m2: Sort PCI device IDs in ascending order
pwrseq: core: fix use-after-free in pwrseq_debugfs_seq_next()
NAS-141531 / 26.0.0-RC.1 / more zpool status checks in failover (by yocalebo) (#19205)
These changes make the standby transition fail closed so a controller
never releases its disks while a pool might still be imported.
When a controller demotes to standby it exports its pools and then stops
fencing to make the disks available to the other controller. The old
code exported each pool on a best effort basis and skipped any pool that
reported a status of OFFLINE. In rare cases a pool can report OFFLINE
while it is in fact still imported, so the old code could stop fencing
and release the disks while a pool was still attached. That is a fail
open scenario because the other controller could then import the same
pool at the same time, which can lead to data corruption.
The new code attempts to export every pool and then confirms the outcome
before releasing fencing. It checks each pool again using a lockless
read of the kernel kstat namespace, which reflects whether a pool is
actually present rather than what state it reports. If any pool is still
imported, or the export is still running past its timeout, or the import
[20 lines not shown]
Avoid more abd_t allocations in RAIDZ/dRAID
RAIDZ/dRAID allocate rc_abdstruct for every column, but used it only
for data columns, while parity columns allocated additional abd_t's
on top of that. This change introduces abd_alloc_linear_struct(),
abd_alloc_gang_struct() and abd_get_zeros_struct() to the ABD API,
mirroring the existing abd_get_offset_struct() pattern, and uses
them to use rc_abdstruct in remaining column cases.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <rob.norris at truenas.com>
Signed-off-by: Alexander Motin <alexander.motin at TrueNAS.com>
Closes #18668
Merge tag 'docs-7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux
Pull more documentation updates from Jonathan Corbet:
"A handful of late-arriving docs fixes, along with one document update
that fell through the cracks before"
* tag 'docs-7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux:
docs: tools: Fix typo 'ackward' to 'awkward' in unittest.rst
kdoc: xforms: ignore special static/inline macros
kdoc: xforms_lists: handle DECLARE_PER_CPU() in kernel-doc
MAINTAINERS: Fix regex for kdoc
docs: kgdb: Fix path of driver options
Documentation: tracing: fix typo in events documentation
Docs/driver-api/uio-howto: document mmap_prepare callback
docs/mm: clarify that we are not looking for LLM generated content
kernel-doc: xforms: support __SYSFS_FUNCTION_ALTERNATIVE()
[SROA] Adjust struct layout requirements for struct to vector canonicalization (#201967)
Address a bug pointed out by @bjope (thank you!)
- To perform struct to vector canonicalization, it is not enough that
the struct layout size is the same as the vector layout size, because
structs and vectors may have padding in different locations! Previously
we would promote `{ i5, i5 }` as `<i5, i5>`, which is a miscompile!
- I also relaxed another requirement. Previously we made sure that the
struct layout size is equal to the vector allocation size. This
prevented promoting `{ i32, i32, i32 }` as `<i32, i32, i32>` because the
struct layout size is 3 x i32 but the vector allocation size is 4 x i32.
So instead we should compare to the vector store size, which is 3 x i32.
[clang-tidy] Move isStdInitializerList to utils::type_traits and add unit tests (#205449)
Moves isStdInitializerList from misc/ExplicitConstructorCheck into
utils::type_traits so it can be shared, and adds unit tests for it. NFC.
Merge tag 'kbuild-7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux
Pull more Kbuild updates from Nathan Chancellor:
- Link host programs with ld.lld when $(LLVM) is set to match user's
expectations that LLVM will be used exclusively during the build
process
- Fix modpost warnings from static variable name promotion that can
happen more aggressively with the recently merged distributed ThinLTO
support
- Add an optional warning for user-supplied Kconfig values that changed
after processing, such as out of range values or options that have
incorrect / missing dependencies
* tag 'kbuild-7.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux:
kconfig: add optional warnings for changed input values
modpost: Ignore Clang LTO suffixes in symbol matching
kbuild: Use ld.lld for linking host programs when LLVM is set
Bazel driver-tools build-setting simplification (#205846)
Read the validated `driver-tools` build setting directly in
`generate_driver_tools_def` instead of reconstructing tool names from
selected `CcInfo` dependency labels through `label.name`.
`generate_driver_selects` now returns the selected dependency labels, so
`select_driver_tools` is removed.
This fixes a silent issue when 2 multicall participants have the same
`label.name`.
[CIR] Zero-init array-new with trivial ctor (#205611)
emitNewArrayInitializer hit errorNYI for a value-initialized array new of
a trivially-constructible element (new T[n]()), where the trailing
parentheses mean zero-initialization. Route the trivial-ctor branch
through the existing tryMemsetInitialization() helper, following classic
CodeGen: a zero-initializable element gets operator new[] plus a single
memset to 0, while a non-zero-initializable element (an array of
pointers-to-data-member, whose null value is -1) declines the memset and
falls through to the constructor loop value-initializing each element.
Also add the getParent()->isEmpty() early return. tryMemsetInitialization
builds the memset through the Address overload of createMemSet so the
destination alignment is preserved.
Found building the SPEC CPU 2026 LLVM benchmark (723.llvm_r / 823.llvm_s)
with ClangIR.
[flang][OpenMP] Decompose combined construct selectors in variant matching (#205802)
The previous code resolved a `construct={...}` selector by mapping its
name to a trait through a string lookup
(`getOpenMPContextTraitSelectorKind` ->
`getOpenMPContextTraitPropertyForSelector`). That works for a standalone
leaf construct such as `parallel`, whose name matches a single construct
selector string, but not for a combined/composite directive such as
`target teams`: its name (`"target teams"`) matches no selector string,
so the lookup returns `invalid` and the selector's construct traits are
dropped.
This PR adds `AppendConstructTraitsForDirective` that walks the
directive sets and adds each leaf trait, so combined directives are no
longer reduced to a single (or dropped) trait. It also handles the
standalone `dispatch` construct trait.
Fixes https://github.com/llvm/llvm-project/issues/205664
Assisted-by: Cursor
Merge tag 'for-linus-7.2-1' of https://github.com/cminyard/linux-ipmi
Pull ipmi updates from Corey Minyard:
"Lots of little tweaks.
Nothing huge, the biggest issue was a possible refcount underflow that
could cause a memory leak in some situations. Otherwise, fixing
formatting and style things and some docs typos"
* tag 'for-linus-7.2-1' of https://github.com/cminyard/linux-ipmi:
docs: ipmi: Fix path of the "hotmod" module parameter
ipmi: Drop unused assignment of platform_device_id driver data
ipmi: si: Use platform_get_irq_optional() to retrieve interrupt
ipmi: fix refcount leak in i_ipmi_request()
ipmi:ssif: Drop unused assignment of platform_device_id driver data
ipmi: Fix user refcount underflow in event delivery
ipmi: Use named initializers for struct i2c_device_id
ipmi: Use LIST_HEAD() to initialize on stack list head
ipmi:kcs: Reduce the number of retries
powerdns: Update to 5.1.2
Released: 25th of June 2026
This is release 5.1.2 of the Authoritative Server. It contains a security fix only.
Please review the Upgrade Notes before upgrading from versions < 5.1.x.
Bug Fixes
Fix PowerDNS Security Advisory 2026-07 for PowerDNS Authoritative Server