commit 27c3de6c8063a7850ef0efbea0d83f314e541ce8
Author: Ryota Ozaki <ozaki-r at iij.ad.jp>
Date: Thu Mar 12 12:42:03 2026 +0900
nd: reset ln_asked on state reset
Even if a userland program such as ping continuously sends packets
to a (temporarily) unreachable host, the ND resolver only sends
request packets up to nd_mmaxtries times. This change allows ND
request packets to continue being sent while the userland process
is still sending packets.
Additionally, introduce LLE_UNRESOLVED to fix another issue.
nd_resolve may incorrectly return an error immediately after sending
the last ND request packet. For example, if nd_mmaxtries = 1 and two
packets arrive simultaneously, nd_resolve returns an error for the
second packet. This occurs because ln_asked is used to determine
whether the ND resolution is still in progress.
[75 lines not shown]
Fix an off by one land mine in PR 60099 fix
While here, fix another, identical land mine, that
has been buried in the absolute wilderness for years.
Someone would have stepped on it one day.
Also fix a field splitting bug handling : or = in
IFS when generated from ${var-string1:string2} type
expansions. This one is even older.
Clean up some dead code that didn't get removed with
the initial 60099 fixes, but probably should have been.
DEBUG mode improvements (the last couple of days have
really needed the DEBUG code).
libXcursor: use a valid setting for XCURSORPATH
also fix the man page build to have the same list (from Petre Rodan).
should fix PR#58407, and partially fix PR#59782.
XXX: pullup-11, maybe others
swapctl(8): do not assume PGSHIFT is available
PGSHIFT might not be available in userland. eg. sparc
use sysconf(_SC_PAGESIZE) to query the kernel instead.
Re-do the way the news1700's external cache vs. 68030 cache burst mode
issue is dealt with.
Rather than completely re-defining the high-level cache operation macros
to exclude the *_BE bits (which actually penalized systems without an EC
because the *_BE bits set in the CACR initiallly would be lost on the first
cache operation), instead we provide a "platform has dynamic CACR values"
hook.
For NEWS, the values default to the with-*_BE variant, but if an external
cache is discovered, the values are patched up with the non-*_BE variants.
Only one shared assembly language routine needs to be adjusted for this,
the rest of the scenarios where these values are used are handled by the
compiler via constraints.
For all other platforms that don't define __HAVE_M68K_DYNAMIC_CACR,
the values remain compile-time constants, as before.
Group 68020/68030 CACR bits into "the actual bits that do stuff" and
"higher level operations", along with some helper macros that compute
the latter in terms of the former.
NFCI, but sets the stage for some future cleanup in this area.
Revert "config_attach_pseudo/config_attach_pseudo: assert kernel lock"
it turned out that we have too many drivers which would trigger
these assertions. although my impression is that they are actually
not mpsafe, let's revert the assertions for now.
PR/60123https://gnats.netbsd.org/60123
zfs: fix deadlock with GOP_MARKUPDATE
because genfs_putpages calls GOP_MARKUPDATE with v_interlock held,
it isn't safe to wait for txg or other i/o. this is a regression
caused by a recent change.
("zfs_netbsd_gop_markupdate: actually update file timestamp")
this commit fixes it by simply dropping GOP_MARKUPDATE for zfs.
as mentioned in the commit message of the change in question,
it's redundant for putpages as we update the timestamps in
GOP_WRITE as well.
for spec/fifo, call the timestamp update logic directly,
not via GOP_MARKUPDATE.
the problem was pointed out by J. Hannken-Illjes.
he also tested this patch.
- move logic to find a device's interrupt controller out of ki2c
- make interrupt numbers in OF, dmesg and systat/vmstat match
- include interrupt controller's name when reporting
Extract this m68k cpu.h commit:
revision 1.26
date: 2025-12-05 05:27:03 -0800; author: thorpej; state: Exp; lines: +21 -4;
commitid: jviu62VSzYhPRdlG;
Define the fields in the 68060 Processor Configuration Register.
...into a new file, pcr.h, and adjust things that need the stuff.
config_attach_pseudo/config_attach_pseudo: assert kernel lock
as commented in the code, whese functions are inherently
mp-unsafe and only usable with the kernel lock held.
sw_reg_strategy: stop panicking on hole
after the recent change to uvm_aio_aiodone_pages,
it should be ok to report errors here. the swap slots
will be marked bad as expected.
tested with a swap file with 50% holes:
```
Device Size Used Bad Avail Capacity Priority
/dev/dk1 2.0G 1.8G 0B 190M 91% 0
/swapfile_with_half_holes 2.0G 2.0G 1.0G 5.6M 100% 0
Total 4.0G 3.8G 1.0G 196M 95%
```
uvm_aio_aiodone_pages: do not discard user data on swap out failure
if swap out i/o failed, maybe the swap device is broken. it's
reasonable to mark it bad. however, there is no point to discard
the user data on the page being swapped out. unlike file pages,
the association to the particular swap slot is not permanent.
next time the page is picked as a victim by the page daemon, a
different swap slot, which is hopefully good, will be allocated.
swapctl: report npgbad
the current layout of swapent is like the following on amd64:
```
(gdb) ptype /o struct swapent
/* offset | size */ type = struct swapent {
/* 0 | 8 */ dev_t se_dev;
/* 8 | 4 */ int se_flags;
/* 12 | 4 */ int se_nblks;
/* 16 | 4 */ int se_inuse;
/* 20 | 4 */ int se_priority;
/* 24 | 1025 */ char se_path[1025];
/* XXX 7-byte padding */
/* total size (bytes): 1056 */
}
```
while it's tempting to use the padding for the new member
to avoid versioning, i guess we can't because, on some
architectures, 64-bit value only has 32-bit alignment. (eg. i386)
zfs: fix "slow rm" issue (cont.)
commit a change which was lost during a porting from
my local git repo to cvs.
fortunately, it was harmless to miss this change though.