pmap_bootstrap(): Fix an error intrduced in rev 1.127 - ensure pmap_membank
points to the first element in the array after building up the linked list.
Add "rootspec" hooks. These hooks add a generic mechanism for
devices to advertise extra root device choices. Use these to
replace wedge-specific code in sys/kern/kern_subr.c .
XXX todo: rootspec configuraton can be unloaded after the root
filesystem is mounted, and rootspechook_establish() calls after
the root filesystem is mounted could then be a no-op.
Thanks riastradh@, mlelstv@ and chs@ for reviews and comments.
Add a cfattach device flag specifying that the device has no partitions.
Use this flag in the "dk" and "flash" drivers. The new device flag
can be checked with the device_has_partitions() function. Removes
device-specific knowledge about which devices have partitions from
sys/kern/kern_subr.c .
moused.8: emphasize that this is the _serial_ mouse daemon
NetBSD now has multiple "mouse daemons" (see wsmoused(8)) and the
some of the assumptions from the past no longer hold - make it very
super obvious in the initial description that this isn't anything like
FreeBSD's moused.
aarch64: mi pmap: save a PTE software bit when doing modify emulation.
Use only OS_MODEMUL and release OS_MODIFIED. A mapping is deemed modified
if it is marked RW and OS_MODEMUL which only ever happens via emulation.
mi pmap: pmap_clear_attribute should check cached value of the attribute
The pmap_clear_attribute implementation used by the MI pmap should
check the cached valued of the attribute as well as any value held
in the PTE(s).
Some emulation implementations require this as some operations, e.g
changing page mappings to RO, can lose PTE attribute information.
gicv3_its: Fix ITT sizing.
The ITT being allocated did not match the size specified on the MAPD
command. This could cause hardware to read past the end of the ITT.
The old code used a fixed offset mapping scheme to assign eventIDs (the
eventID was derived from the LPI INTID). This scheme is wasteful and
doesn't scale well as the ITT is essentially an array of ITEs starting
with eventID 0. This change introduces per-deviceID namespaces for
eventIDs and allocates them starting with 0. A fixed number of eventIDs is
made available for each deviceID (MAXCPUS * 2). On a platform with an ITE
size of 8 bytes, this allows the ITT to fit in a single page.
The ITT is sized larger than the initial request as multiple requestors
could potentially share the same deviceID (this is the case for legacy PCI
devices behind a PCIe-to-PCI bridge).
The size parameter of the MAPD command now matches the allocated ITT.
Tested on QEMU KVM Virtual Machine and Ampere eMAG (Lenovo HR330A).
Explicitely check a pointer against NULL before computing a member address,
to avoid undefined behavior. Avoids the same NULL pointer check being
"optimised" later, leading to NULL pointer dereference.
It is expected that -fno-delete-null-pointer-checks would avoid this but
it does not.
For details see
https://mail-index.netbsd.org/tech-toolchain/2026/05/23/msg004818.html
and PR toolchain/60289
Needs pullup to netbsd-11.
callout(9): tweak
Don't change the name of the argument when explaining callout_pending.
Don't do manual "code hilighing".
Format the paper reference properly (and add missing information).
callout(9): Clarify previous language about clarity/efficiency.
And with that, I think I'm done touching up callout(9) for now.
PR kern/60288: callout(9) does not document callout_schedule()
callout(9): Prefer callout_setfunc/schedule more explicitly.
It is better on clarity grounds; the efficiency difference is really
quite minor.
Prompted by:
PR kern/60288: callout(9) does not document callout_schedule()
callout(9): Partially fix markup error in previous.
Tried to spell out that it will call func(arg) and forgot to fix it
before previous commit. Doesn't look right now but at least it is
not as thoroughly wrong as something that renders as Fa(func, arg).
(This is an invitation for our resident mdoc wizards to correct my
infelicities!)
PR kern/60288: callout(9) does not document callout_schedule()
callout(9): Clarify callout_schedule, _setfunc, and _reset.
Might be better to use .Bl -tag instead of paragraphs of prose too.
PR kern/60288: callout(9) does not document callout_schedule()