[flang][PFT-to-MLIR] Default wrap-unstructured-constructs-in-execute-region to off
Flip the default of `-wrap-unstructured-constructs-in-execute-region`
from true to false while further miscompiles under the wrap path are
investigated. The flag is still available; lit tests that exercise the
wrap path now pass it explicitly on their RUN lines.
Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
[LLDB] Disable Foundation test on newer versions of macOS (#211127)
On macOS >= 27 Foundation caches the path of a URL-initialized
NSBundle as a native Swift String. We cannot format that without the
Swift language plugin.
Add a requiresSwiftPlugin() decorator in decorators.py and use it for
the NSBundle formatter test. It expects failure only when LLDB lacks the
Swift plugin, and only on Apple targets at or after a given OS version
(checked against the target platform, so it is correct for
iOS/tvOS/watchOS/visionOS as well as macOS). Builds with the plugin are
expected to pass.
Assisted-by: claude
ld.elf_so: Prune some dead TLS variant branches.
__lwp_settcb / __lwp_gettcb_fast are used only with TLS variant I,
never with TLS variant II.
So say `#ifdef __HAVE_TLS_VARIANT_II' instead of `#ifndef
__HAVE_TLS_VARIANT_I' to make it clearer, and prune all the
__HAVE___LWP_SETTCB / __HAVE___LWP_GETTCB_FAST branches under it
because they're unreachable.
No functional change intended: all the deleted code should be dead.
PR bin/60469: bin/60469: assertion "ALIGNED_P(q, obj->tlsalign)"
failed: file "/usr/src/libexec/ld.elf_so/tls.c", line 333
ld.elf_so: Fix assertions for TLS variant I without _lwp_settcb.
In variant I, the TLS address is always
(uint8_t *)tcb + sizeof(struct tls_tcb) + obj->tlsoffset.
With _lwp_settcb, (uint8_t *)tcb + sizeof(struct tls_tcb) is aligned,
whereas without it, (uint8_t *)tcb is aligned. Consequently, with
_lwp_settcb, obj->tlsoffset must also be aligned, whereas without it,
obj->tlsoffset + sizeof(struct tls_tcb) must be aligned -- and hence,
without _lwp_settcb, obj->tlsoffset must be congruent to
-sizeof(struct tls_tcb) modulo the alignment.
No functional change intended for non-DEBUG builds: assertion changes
only here.
PR bin/60469: bin/60469: assertion "ALIGNED_P(q, obj->tlsalign)"
failed: file "/usr/src/libexec/ld.elf_so/tls.c", line 333
uvideo: track streaming ownership per-fd and free buffers on STREAMOFF
The driver shared a single streaming state and buffer pool across all
open file descriptors, so a second client (e.g. another browser tab)
could disrupt the first: its cleanup STREAMOFF would tear down the
active stream, and stale buffers prevented re-acquisition.
Add per-fd state via devfs cdevpriv tracking whether this fd started
streaming. STREAMOFF and close from a non-streaming fd are no-ops.
STREAMOFF from the streaming fd stops the stream and frees the buffers
so that a new fd can re-acquire the camera. DQBUF returns EPIPE
immediately when buffers are freed instead of waiting for a timeout.
uvideo: fix close/detach race on streaming teardown
detach() stopped streaming and called uvideo_vs_close() before
destroy_dev(), so a concurrent close() could race the teardown and call
uvideo_vs_close() a second time (double usbd_transfer_unsetup), and
mtx_destroy() could race a close still holding sc_mtx. sc_streaming
was also read without the lock in both paths.
Reorder detach() to call destroy_dev() first so all in-flight cdev
methods drain before any teardown. Read sc_streaming under sc_mtx in
both detach() and the last-close safety net.
uvideo: lock the mmap queue and read path
qbuf(), dqbuf() and read() manipulated sc_mmap_q / sc_mmap_cur /
sc_frames_ready without sc_mtx, racing with the USB transfer callbacks
(producer) that run under the mutex. This could corrupt the queue or
trigger use-after-free.
Take sc_mtx around qbuf(), use mtx_sleep() and protect the queue
operations in dqbuf(), and use mtx_sleep() with a snapshot of sc_fsize
in read().
Also reject S_FMT and S_PARM with EBUSY while streaming: both
re-negotiate the probe/commit controls with the device, which disrupts
the active USB transfers (a second client opening the device would
otherwise freeze the first one's stream).
uvideo: replace contigmalloc with OBJT_PHYS vm_object for mmap buffer
Allocate the mmap buffer via phys_pager_allocate() and map it into
kernel space with vm_map_find()/vm_map_wire(), instead of a custom
cdev_pager backed by contigmalloc. phys_pager_allocate() is required
over a bare vm_object_allocate(OBJT_PHYS) to initialise un_pager.phys.ops,
otherwise phys_pager_getpages() NULL-derefs during vm_map_wire().
Reviewed by: markj
Reported by: markj
Differential Revision: https://reviews.freebsd.org/D58394
uvideo: validate frame size before mmap buffer allocation
dwMaxVideoFrameSize comes from the USB probe/commit response and is not
validated. reqbufs() computed buf_size_total with signed int arithmetic
and no bound, so a bogus value could wrap the product to a small size
and yield a too-small buffer with a huge sc_mmap_buffer_size, causing
out-of-bounds writes from the USB transfer callbacks.
Bound the frame size against sc_max_fbuf_size and use overflow-checked
size_t arithmetic for the total and per-buffer offsets.
Reported by: emaste
uvideo: bounds-check frame interval reads against bLength
Frame interval data is read from device-supplied frame descriptors whose
bLength may be shorter than the number of intervals declared by
bFrameIntervalType. The continuous branch of uvideo_enum_fivals() read
three intervals unconditionally, and the discrete branch checked the
pointer but not the four bytes that UGETDW() reads, so a short or
malformed descriptor could read past bLength and leak adjacent kernel
memory to userspace. uvideo_vs_parse_desc_frame_max_rate() had the same
class of off-by-up-to-three-bytes read.
Compute the available bytes from bLength and validate before each read.
Reported by: emaste
knot: Update to 3.5.6
Release notes
Knot DNS 3.5.6 (2026-07-20)
Improvements:
knotd: new log message when accepting a control client fails
knotd: new log message when UDP or TCP worker initialization fails
knotd: improved log message when loading an expired zone
knotd: more verbose log messages for DDNS forwarding
knotd: disabled 0-RTT when forwarding DDNS updates over QUIC
utils: configuration detection considers an empty database directory as unused
libknot: added support for EDE code 33 (Negative Trust Anchor) (Thanks to Babak Farrokhi)
libs: upgraded embedded libngtcp2 to 1.24.0
doc: various improvements
Bugfixes:
knotd: server crashes when evaluating an ACL rule with 'cert-hostname' set
knotd: failed to start with 'listen-tls' and 'tcp-reuseport' enabled
[7 lines not shown]
[mlir][OpenACC] Support static multi-rank OpenACC array reduction accumulators (#210853)
Example:
```fortran
!$acc parallel loop reduction(+:a)
do i = 1, n
a(i,:) = a(i,:) + input(i,:)
end do
```
In this code, the reduction accumulator can have rank greater than one,
but GPU lowering assumes rank one.
Fix: initialize rank-N accumulators with nested loops and delinearize
flattened indices before loading, reducing, and storing each element.
[Hexagon] Drop NodeAddr::operator<, fix bad asserts directives (#210192)
Removed NodeAddr::operator< that was added by mistake in #207082.
Nothing needed it once HexagonPostRAHandleQFP.cpp's containers went back
to keying on NodeId.
Also removed the contradictory UNSUPPORTED+REQUIRES asserts in two
tests; subreg2 still crashes so it's XFAIL'd for now.