NAS-144913 / 28.0.0-BETA.1 / Make SYSTEM_PRODUCT_WRITE include SYSTEM_PRODUCT_READ instead of itself
The SYSTEM_PRODUCT_WRITE role listed itself in its includes. roles_for_role()
recurses through includes with no cycle guard, so composing any privilege that
granted this role raised RecursionError and members of that group could no
longer log in.
Add a unit test that every role include names a different existing role and
that roles_for_role() resolves for every role.
[MLIR][XeGPU] Use all ones as the neutral value of an AND reduction (#232828)
createReductionNeutralValue returns 1 for an AND reduction. The neutral
value of AND is all ones. With 1, the reduction keeps only bit 0 of the
result.
The WG-to-SG distribution of vector.multi_reduction starts its local
reductions and the final cross-subgroup reduction from this value. The
peephole split of a 2-D reduction does the same. So an `<and>` reduction
on an integer type wider than i1 gives a wrong result. For i1, 1 is
already all ones.
Return all ones for integer and index types.
---------
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[CIR] Keep the address space in thunk this and return adjustments (#234183)
Thunks cast this to a plain i8 pointer, which broke on spirv64-amd where
this lives in address space 4
[CMake][NFC] Add llvm_tablegen and use it instead of tablegen(LLVM ...)
Other subprojects invoke their TableGen through a project-specific wrapper
(clang_tablegen, mlir_tablegen, lldb_tablegen). Add llvm_tablegen for
llvm-tblgen and replace every tablegen(LLVM ...) call with it.
The llvm-tblgen-specific logic in tablegen() moves into llvm_tablegen: the
DAGISel/GlobalISel coverage and -omit-comments flags, and the extra outputs
of -gen-register-info, which tablegen() now accepts generically through a
new EXTRA_OUTPUTS argument.
riscv: Map the DTB when it is outside the kernel's 1GB region
When the kernel is started directly by SBI firmware, locore.S maps only
the 1GB region that contains the kernel, and initriscv() reads the DTB
through that mapping at the physical address passed in a1. If the
firmware put the DTB in another 1GB region, as QEMU does with more than
1GB of RAM, fake_preload_metadata() faults before the console is up and
the kernel hangs.
Also map the 1GB region that contains the DTB.
This fixes direct kernel booting without FreeBSD loader(8).
PR: 299088
Reviewed by: mhorne
Fixes: bfb857546984 ("riscv: Construct an identity map in locore.S")
MFC after: 1 week
Signed-off-by: Rick Richard <rick at sloservers.com>
Reland "[ELF] Omit zero-range FDEs from .eh_frame_hdr" (#235793)
A zero-sized function (e.g. only `__builtin_unreachable()` in the body
when not using -trap-unreachable) shares its address with the next
function, and its zero-range FDE can win the uniquify step, leaving the
next real function impossible to unwind.
Fix #218124 by dropping FDEs with a zero PC range from the search table.
With linker relaxation (RISC-V, LoongArch), pc_range is zero in the
object file and computed by an ADD32/SUB32 relocation pair. Treat
pc_range as zero only if the pair resolves to the same address.
[llubi] Add support for llvm.masked.load (#234772)
Enabled lanes are loaded from memory, masked-off lanes are taken from
the passthru operand and are not accessed. Misaligned pointers are
poison due to the align attribute. Poison mask lanes are treated as UB,
as for the experimental vector histogram intrinsics.
Only element types that are a whole number of bytes are supported for
now.
PR: https://github.com/llvm/llvm-project/pull/234772
service: add reusable daemon(8) supervisor
Critical services can occasionally disappear after an OOM kill, crash or unexpected signal. This is especially disruptive when Suricata runs in divert-to mode: if it no longer consumes and reinjects packets, most traffic can stop until the service is restarted manually. Other vital system services have similar, albeit rare, failure modes.
Use daemon(8) as a small, reusable safety harness for supported services. A shared rc.subr helper starts a foreground service below daemon(8), tracks the supervisor and child independently, forwards stop and reload operations, and removes stale service PID files before restart attempts. Bounded retries with a delay prevent a permanently failing service from looping without limit.
This is intentionally a narrow initial implementation. Its boundary is a single service process that can run in the foreground and be dispatched by daemon(8). Services with their own process dispatcher, multiple independent children, or a custom lifecycle need additional integration before they can use it safely.
service: expose supervised status
Pass the supervised service marker through the service API and show a shield in both Diagnostics: Services and the dashboard Services widget.