[clang] fix redeclarations of the injected class name (#207301)
The declaration used to represent an injected class name should never be
part of any redeclaration chain.
Fixes #202320
[compiler-rt][hwasan] Remove internal linkage from check templates (NFC) (#207430)
`SigTrap`, `CheckAddress`, and `CheckAddressSized` are static function
templates in `hwasan_checks.h`, so any TU that includes the header
without instantiating them trips -Wunused-template. Dropping static
clears the warning.
Part of #202945
apple_smc: add thermal governor and PROCHOT override
When the SMC asserts PROCHOT# due to disconnected sensors or absent
battery, the driver now detects this at attach, clears BD_PROCHOT in
MSR 0x1FC, and takes over fan control from the SMC failsafe. A kernel
thread implements a linear fan curve between configurable temperature
thresholds with hysteresis and rate-limited ramp-down.
New sysctls expose scheduled wake time (CLWK), S5 power-on timer
(G3AO/G3WD), AC wake delay (AUWT), display brightness (DPBR),
chassis state (ENV0), and software thermal throttle disable (STFD).
The raw key interface is no longer gated behind APPLE_SMC_DEBUG.
Temperature description table expanded to ~170 entries.
[PowerPC] Remove itinerary IIC_LdStDCBA
The itinerary IIC_LdStDCBA is defined and used in scheduling models, but no instruction is assigned to it. However, since the instruction is basically retired (not part of the portable Power ISA), and all scheduling models model it similar to IIC_LdStDCBF, the itinerary can be removed.
[VPlan] Add m_VScale() pattern matcher. (NFC) (#207394)
Add a dedicated m_VScale() matcher for VPInstruction::VScale, in line
with other VPInstruction matchers.
mail/spf-tools: [New Port] Shell tools for keeping SPF records tidy
A collection of scripts for manipulating SPF records to stay within
the 10 DNS look-up limit specified in RFC 7208. Also includes scripts
to update SPF records via AWS, Cloudflare, and DNSimple APIs.
PR: 294442
Author: Jordan Montesse <ports at brtsvcs.net>
net/route-summarization: [New Port] Lightweight CIDR aggregator using Perl's Net::CIDR::Lite
A lightweight CIDR aggregation utility built in Perl using the
Net::CIDR::Lite module. This tool summarizes IPv4 and IPv6 prefixes
from standard input and optionally formats output for SPF record
usage.
Inspired by the original concept described in Random Thoughts.
PR: 294430
Author: Jordan Montesse <ports at brtsvcs.net>
[X86] Pool sparse disassembler opcode rows (#202666)
The XOP, 3DNow, and VEX/EVEX map 4-7 decoder tables contain 1,760
context rows but only 266 distinct values. Keep the four common opcode
maps as direct tables and intern rows only for these eight sparse maps.
This reduces fully stripped arm64 llvm-mc from 8,333,344 to 6,797,728
bytes, saving 1,535,616 bytes (18.43%). X86Disassembler.cpp.o decreases
by 1,525,328 bytes (52.36%); constant data falls by 1,526,328 bytes
while text grows by 848 bytes. The stripped all-tools multicall binary
decreases from 145,103,200 to 143,567,584 bytes, saving 1,535,616 bytes
(1.058%).
Work towards #202616
AI tool disclosure: Co-authored with OpenAI Codex.
[compiler-rt][sanitizer_common] Remove internal linkage from RegisterFlag (NFC) (#206308)
RegisterFlag is a static function template in a header, so every TU that
includes it without calling it trips `-Wunused-template`. Dropping
static gives it normal external linkage and clears the warning.
NFC. Part of #202945.
[clang] fix redeclarations of the injected class name
The declaration used to represent an injected class name should never
be part of any redeclaration chain.
Fixes #202320
fusefs: fix vnode locking violations during execve
Fix two locking violations that could happen during execve, while
executing a file stored on fusefs. Both would cause panics on an
INVARIANTS kernel after 15.0, or a DEBUG_VFS_LOCKS kernel prior to that.
Neither is likely to be noticeable on a release kernel.
* Don't assume that the vnode is exclusively locked during VOP_CLOSE.
It usually is thanks to !MNTK_LOOKUP_SHARED, but isn't during execve,
which locks the vnode outside of the lookup path.
* Totally rewrite fuse_io_invalbuf. It's had a number of problems ever
since its original introduction[^1]:
- Don't assume that the vnode is exclusively locked. That assumption
failed during execve just like the assumption in fuse_vnop_close.
- Don't livelock forever if vinvalbuf returns ENOSPC or EDQUOT.
[20 lines not shown]