[CIR] Fix `llvm.mlir.constant` creation (#220022)
- After #218887, the constant verification is tightened and requires
matching attr and res types. Fix one violation when lowering `cir.not`.
Drop the duplicate failover license hook
This commit fixes an issue where failover registered two post_license_update hooks with identical bodies. The older one used to restart ctdb as well, but that moved to CtdbLicenseReconcileDelegate and left it as a bare status_refresh.
Keeping it was worse than redundant: it registers sync=False with no order, so it could re-cache failover_status partway through the reconcile pass that the remaining order=-100 hook exists to run in front of.
[DirectX][ProfCheck] Add recently enabled test to exclude list (#220033)
The DirectX enablement PR in #214066 means these tests now run on the
profcheck builder. This is an existing issue that has presumably been
around for a while, just disable for now to allow more time for a fix.
[mlir][VectorToSCF] Decline transfer ops with no automatic allocation scope (#216947)
Fixes #216225.
Lowering a `vector.transfer_*` whose rank exceeds the target rank
allocates a temporary buffer with `memref.alloca`, whose verifier requires an
ancestor carrying `AutomaticAllocationScope`. The pattern never checked for one,
so a transfer op sitting directly in `builtin.module` asserts in
`getAutomaticAllocationScope` instead of being left alone:
```mlir
%c0 = arith.constant 0 : index
%cst = arith.constant dense<0.0> : vector<2x3xf32>
%m = memref.alloc() : memref<2x3xf32>
vector.transfer_write %cst, %m[%c0, %c0] : vector<2x3xf32>, memref<2x3xf32>
```
Declining is the only option: there is no legal IR the pattern could
emit here. The check goes in `checkPrepareXferOp`, which both the read and the
[8 lines not shown]
handbook/disks: remove obsolete sysinstall note from gbde section
sysinstall was removed in FreeBSD 10 and gbde was removed in
FreeBSD 15. The note warning about their incompatibility is no
longer relevant.
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D55866
aq(4): Document the Atlantic 2 (AQC113/114/115/116) devices
List every AQC part aq_vendor_info_array[] probes, each with the
maximum speed aq_hw_capabilities() grants it.
Only the Atlantic 2 parts link at 10 Megabit. The AQC100 and AQC100S
are the only SFP+ controllers; the rest are twisted pair.
Reviewed by: adrian, ziaee
Signed-off-by: Nick Price <nick at spun.io>
Differential Revision: https://reviews.freebsd.org/D58144
(cherry picked from commit 1d89845e90867e2f970c651c342eb07da847b6e9)
[Support] Don't take a lock in CrashRecoverySignalHandler (#219529)
Disable() locks a mutex with static storage duration, which is not safe
from a signal handler. When the signal arrives during exit(), after
static destructors have run, the mutex is already destroyed, causing
pthread_mutex_lock returns EINVAL and in turn causing libc++ to throw.
To make matters worse, without exceptions, the throw becomes a
std::terminate, which happens before uninstallExceptionOrSignalHandlers.
Because the signal handler is installed without SA_RESETHAND, every call
to abort() re-enters the handler and throws again.
Inline the two statements Disable() performs. Racing with another thread
here doesn't matter, as the previous comment noted.
[clang][Driver] Link libssp_nonshared.a on musl with stack protector (#219828)
While upgrading clang/llvm to 23.1.0 in openembedded-core I hit this
link failure on 32-bit x86 musl:
ld: undefined reference to `__stack_chk_fail_local'
I dug into it. musl's libc has __stack_chk_fail but not
__stack_chk_fail_local. GCC emits calls to the _local variant in
PIC/PIE code on some targets - I checked with GCC 16: 32-bit x86 does
it, x86_64 does not. So on those targets, any GCC-built object linked
with clang on musl fails once stack protection is used.
Distros already solve this on the GCC side: Alpine and OpenEmbedded
ship a tiny libssp_nonshared.a containing just that symbol, and patch
GCC to add -lssp_nonshared when stack protection is on. Both carry
the same downstream patch for clang too (OpenEmbedded since 2016),
and the GCC side is being fixed in parallel (gcc PR driver/127138,
v2 on gcc-patches:
[14 lines not shown]
AMDGPU: Convert tests to use subarch triples
Some of these have snuck in since the bulk conversions.
Also round out the subtarget objdump test with some real uses
of -mcpu.
aq(4): program the Atlantic 2 multiqueue datapath
Wire up the Atlantic 2 receive datapath: the action-resolver table (ART),
multiqueue RSS, QoS, and interrupt moderation.
RX action-resolver table: Atlantic 2 replaces Atlantic 1's discrete RX
filter registers with an ART -- hardware computes a per-packet
classification tag, then walks {tag, mask, action} rows to drop, assign a
queue, or assign a TC. aq_hw_art_filter_set() installs one row under the
ART semaphore; aq_hw_init_rx_path() enables the resolver, tags L2
unicast/broadcast, installs the unicast/all-multicast and VLAN drop rows,
and assigns every 802.1p priority to TC 0 (mirroring the Atlantic 1
user-priority map, since our RX side is a single 8-ring group in TC 0).
Tag every enabled VLAN filter in the per-filter resolver-tag field -- a
register the BSD ports never write -- because the VLAN drop row matches
resolver tag 0, so without it all tagged receive was dead under VLAN
filtering. Promiscuous mode disables the drop rows rather than toggling
the Atlantic 1 promiscuous bits; all ART callers surface a semaphore
timeout consistently. The Atlantic 1 RX_TCP_RSS_HASH and TPO2
[28 lines not shown]
aq(4): correct Atlantic 2 register access
Four Atlantic 2 register-access corrections found in bring-up.
B0 aggregate octet counters: the B0 firmware statistics interface reports
only aggregate rx/tx good octets, not the per-cast breakdown A0 and
Atlantic 1 provide, so every octet sysctl read a permanent zero while
frame counters advanced. Populate the aggregate octet fields from the B0
buffer; aq_update_hw_stats() accumulates them directly when the per-cast
octets are absent.
Drop the duplicate attach-time MCP reboot: aq_hw_mpi_create() already
reboots the A2 firmware to read its version and caps, then aq_hw_reset()
immediately rebooted it again -- a full MCP restart plus several
transaction-id-bracketed window reads, adding attach latency and a
duplicate banner. Give aq_hw_reset() a reboot flag and pass reboot=false
for A2 at attach; the load-bearing down/stop reboot (which resyncs A2 RX
DMA across ifconfig down/up) keeps reboot=true.
[16 lines not shown]
aq(4): add Atlantic 2 (AQC113) device support
Add support for the Marvell Atlantic 2 (AQC113/114/115/116) controllers,
a new chip generation that is not register-compatible with the Atlantic 1
parts aq(4) supports today. Adapted from the OpenBSD/NetBSD if_aq driver.
Register and device definitions (aq2_hw.h): the firmware handshake
(MIF_BOOT / MCP_HOST_REQ_INT / MIF_HOST_FINISHED), the 0x12000/0x13000
firmware interface windows, and the action-resolver table (ART) that
replaces Atlantic 1's discrete RX filters, plus the Atlantic 2 PCI device
ids and the aq_is_atlantic2() helper. Reserve a chip-feature bit
(AQ_HW_CHIP_ATLANTIC2) and add the aq_hw fields the firmware fills at boot
(ART base index, statistics interface version A0/B0). The per-VLAN-filter
resolver-tag field comes from the Linux driver; the BSD sources never
write it.
Firmware operations (aq_fwa2.c): Atlantic 2 talks to the management CPU
through the 0x12000/0x13000 register windows plus the boot handshake,
rather than Atlantic 1's mailbox in shared RAM. Implement that as a third
[33 lines not shown]
Strengthen metadirective loop checks
Strengthen the metadirective loop lowering test so it verifies complete
selected and fallback paths instead of matching only the expected loop kinds.
Use CHECK-NEXT where needed so unexpected operations cannot hide between
adjacent structural checks.
openssh: Fix shosts.equiv path in manual pages
Change the path for the shosts.equiv file to consistently reflect
/etc/ssh/shosts.equiv across all manual pages.
This change stems from 35d4ccfb5576 ("Document FreeBSD defaults and
paths.")
Reviewed by: bcr, emaste
Differential Revision: https://reviews.freebsd.org/D52203
(cherry picked from commit 336cc041a492b03fde96fd89915ae694cf31b551)
ministat.1: Match actual output
Fix a documentation discrepancy, where the implementation was updated to
use uncertainty propagation for the ratio of means, but the example
output in the manual page was left unchanged.
Update the manual page example from 70.7384% to 102.3% to reflect the
actual output.
While here, also update the example in the README.
Reviewed by: ziaee
Fixes: a304ad90e9ae ("Reduce the bogosity of ministat's % difference calculations.")
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D59157
(cherry picked from commit 595e665cb292a70f9d17b779c8ad0470ff3e3964)
openssh: Fix shosts.equiv path in manual pages
Change the path for the shosts.equiv file to consistently reflect
/etc/ssh/shosts.equiv across all manual pages.
This change stems from 35d4ccfb5576 ("Document FreeBSD defaults and
paths.")
Reviewed by: bcr, emaste
Differential Revision: https://reviews.freebsd.org/D52203
(cherry picked from commit 336cc041a492b03fde96fd89915ae694cf31b551)
openssh: Fix shosts.equiv path in manual pages
Change the path for the shosts.equiv file to consistently reflect
/etc/ssh/shosts.equiv across all manual pages.
This change stems from 35d4ccfb5576 ("Document FreeBSD defaults and
paths.")
Reviewed by: bcr, emaste
Differential Revision: https://reviews.freebsd.org/D52203
(cherry picked from commit 336cc041a492b03fde96fd89915ae694cf31b551)