axp81x: Set the maximum voltage of the AXP805 regulators
AXP805_REG() did not set voltage_max, so a regulator without
regulator-max-microvolt in the FDT got a maximum of 0 and its
initialisation failed with ERANGE. Compute it from the minimum and the
steps of the two ranges, like the value of the AXP813 DCDC7.
Reported by: llm-postcr
Tested on: H6
axp81x: Allow the interrupt handler to sleep
The interrupt handler reads and writes the registers of the PMU, which
can sleep: the I2C controller the AXP805 is on in the H6 waits for the
end of the transfer, and taking the bus waits when it is busy. The
handler runs in an interrupt thread, which cannot sleep unless the
interrupt is marked as sleepable, so the first interrupt would panic a
kernel with INVARIANTS. Mark it, the interrupt is not shared.
Reported by: llm-postcr
Tested on: A64, H6
axp81x: Always set the delay of the regulator methods
axp8xx_regnode_set_voltage() and axp8xx_regnode_enable() only set the
delay when they succeeded, so the callers could use an uninitialized
value after an error. Set it first like the default methods do.
Reported by: llm-postcr
Tested on: A64
regulator: Do not delay when setting the voltage failed
regnode_set_voltage_checked() called regnode_delay() with the delay
returned by the driver even when REGNODE_SET_VOLTAGE() failed. A driver
does not have to set it on error, so the delay could be a random value
from the stack. Only wait when the voltage was set, like
regnode_set_voltage() does.
Reported by: llm-postcr
Tested on: A64
loader: Read the partition table of md images
md is a DEVT_DISK device but never called disk_open(), so reads always started
at offset 0 of the image. A partitioned image, such as a memstick image booted
memdisk=, has its partition table there, not a filesystem, and the loader stops
with "MD not present".
Reviewed by: imp
Approved by: imp
Sponsored by: Netflix
Differential Revision: https://ron-dev.freebsd.org/FreeBSD/src/pulls/99
loader.efi: Give the md probe a struct disk_devdesc
probe_md_currdev() named md through set_currdev_devsw(), which builds a plain
struct devdesc. Once md uses disk_fmtdev(), that reads d_slice and d_partition
past the end of the struct, and currdev becomes a name built from stack garbage.
Use a struct disk_devdesc instead, and open the device first so the name shows
the slice and partition actually found. When the image has no partition table,
fall back to the whole image, as before.
Add md_get_size() and move MD_BLOCK_SIZE to bootstrap.h so main.c
can open the device.
Reviewed by: imp
Approved by: imp
Sponsored by: Netflix
Differential Revision: https://ron-dev.freebsd.org/FreeBSD/src/pulls/98
stand: Accept any device name in disk_parsedev()
disk_parsedev() only accepted names starting with "disk" or "vdisk", so other
DEVT_DISK devices using disk_fmtdev() could print a name they could not parse
back, e.g. "md0s2a:".
Skip any alphabetic prefix instead; devparse() has already matched it to the
devsw.
Reviewed by: imp
Approved by: imp
Sponsored by: Netflix
Differential Revision: https://ron-dev.freebsd.org/FreeBSD/src/pulls/97
www/nginx-module-ip-anon: Update to 0.2.0
Adds $remote_addr_hash, a keyed one-way pseudonym of the client
address. Logs can still tell clients apart and limit_req can act per
client, without an address being written anywhere. The hash is
HMAC-MD5 so it also works in builds without OpenSSL, and without a
secret the variable is not defined at all.
Sponsored by: Netzkommune GmbH
www/immich: Update to 3.4.1
Shared link cover queries no longer drag, .hif files are recognised as
HEIF, and the Prometheus exporter listens on all interfaces.
Changelog:
https://github.com/immich-app/immich/releases/tag/v3.4.1
Sponsored by: Netzkommune GmbH
loader.efi: Allocate ram disks as EfiReservedMemoryType
The kernel adds EfiLoaderData ranges to physmap and reuses the pages, so a
memdisk=root is overwritten while the system runs. The kernel skips
EfiReservedMemoryType, which ACPI requires for a registered RAM disk.
Fixes: 85fb40bad584
Reviewed by: imp
Approved by: imp
Sponsored by: Netflix
Differential Revision: https://ron-dev.freebsd.org/FreeBSD/src/pulls/96
net/tigervnc-viewer: Bump again to trigger rebuild against FLTK 1.4
PORTREVISION had been bumped at PR 296190 (320e46a) in the master port,
bumping to PORTREVISION=1 did not take effect. Bumping again.
snd_envy24ht: Fix out-of-bounds DMA buffer indexing
378e0c5c8967 reduced the number of playback channels from 5 to 1. This
introduced a regression, because the global DMA buffer indexing was not
adapted accordingly, which now results in kernel panics because of
out-of-bounds reads into the buffer. Additionally, because of wrong
indexing, recording channels ended up being serviced by the playback
part of envy24ht_intr().
Register 1 recording channel instead of 2 + sc->adcn, as the recording
DMA buffer only has room for 1 stereo stream. With 1 channel per
direction, give each channel the first index of its direction
(ENVY24HT_CHAN_PLAY_DAC1 and ENVY24HT_CHAN_REC_ADC1).
While here, fix the buffer wrap in envy24ht_r16sl(). It has to be
ch->size / ch->unit, but was copied verbatim from the 32-bit equivalent,
whose samples are twice as large, so 16-bit recording wrapped halfway
through the DMA buffer and never read the second half.
[8 lines not shown]
sysutils/fjord: Update to 0.4.3
- Require cni-epair 1.2.1, which no longer sends the host's name to
the DHCP server for every container
- Install sbin/fjord, a link to fjordd that runs its new CLI
- rc.d: start after appjail
Changelog: https://github.com/daemonless/fjord/releases/tag/v0.4.3
Reviewed by: dtxdf
Approved by: dtxdf (mentor)
Differential Revision: https://reviews.freebsd.org/D61442
devel/vectorscan: update to 5.4.14
- Update 5.4.13 to 5.4.14
- Drop patch for cmake/build_wrapper.sh; upstream rewrote it to use
nm -f posix, which works with llvm-nm
- Patch cmake/build_wrapper.cmake so the new libcsyms.sh step uses
/lib/libc.so.7 instead of libc.so.6 (otherwise the libc symbol list
is silently empty) and runs the script with sh instead of bash
- aarch64: add elf_aux_info()-based SVE/SVE2 detection for the fat
runtime dispatcher; upstream only implements it on Linux, so SVE
variants were never selected on FreeBSD. Also require SVE2 bitperm
for the sve2 variant, since it is built with +sve2-bitperm.
Verified to fall back to NEON on a non-SVE CPU (eMAG); not yet
tested on SVE hardware.