<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in kern</title>
    <link>http://nxr.netbsd.org/rss/src/sys/kern/</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>kernel: Track what lock each lwp is waiting for without LOCKDEBUG.<br/><br/>This is reasonably cheap -- one extra pointer on the stack, couple<br/>extra stores when _waiting_ (spinning or sleeping) for a _contended_<br/>lock -- and doesn't change the kernel ABI.  Will enable us to get<br/>diagnostics from crash dumps when, e.g., there's a softint deadlock<br/>tripping a heartbeat panic.<br/><br/>PR kern/60030: ddb/crash: show all locks without LOCKDEBUG</title>
    <description></description>
    <pubDate>Sun Aug 16 21:00:00 UTC 2026</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>proc_vmspace_getref: Take p-&gt;p_lock around p-&gt;p_sflag access.<br/><br/>Prompted by reviewing the locking rules in;<br/><br/>PR kern/60568: panic locking against myself (p-&gt;p_lock) in NFS from<br/>sysctl_vmproc</title>
    <description></description>
    <pubDate>Fri Aug 14 03:00:00 UTC 2026</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>Rename the "basic 4BSD" disklabel routines readdisklabel_4bsd()<br/>and writedisklabel_4bsd(), but add weak aliases to the standard<br/>names.  This easily allows machine-specific code to look for an<br/>odd-ball machine-firmware-specific format that might be required<br/>only for booting but otherwise use garden-variety BSD disklabels.</title>
    <description></description>
    <pubDate>Sun Aug 09 16:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>proc_regio: Clarify control flow and sprinkle comments.<br/><br/>Use `if (error) goto out' instead of `if (error == 0) error = ...' to<br/>make the error case non-linear and indented, and the success case a<br/>straight line of logic.<br/><br/>No functional change intended.<br/><br/>PR port-amd64/60556: panic in process_read_fpregs_xmm</title>
    <description></description>
    <pubDate>Sat Aug 08 00:00:00 UTC 2026</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>vflushbuf: Print `vflushbuf: dirty' warning only once per call.<br/><br/>And do it only under DEBUG, and rate-limit it globally.<br/><br/>This can happen when vflushbuf is competing with an onslaught of<br/>concurrent I/O on a snapshot or block device (which is done without<br/>holding the vnode lock, despite what the comment says).  That<br/>concurrent I/O might be happening indefinitely, so we are likely to<br/>have to print a _lot_ of warnings, potentially overwhelming the<br/>console, until the underlying problem is fixed by teaching vflushbuf<br/>to wait only for the writes that began before have completed, not<br/>also all writes that have begun since.<br/><br/>This stop-gap measure intended to be low-risk for pullup to release<br/>branches.<br/><br/>PR kern/60531: looping "vflushbuf: dirty" message</title>
    <description></description>
    <pubDate>Thu Aug 06 22:00:00 UTC 2026</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>&lt;sys/disklabel.h&gt; not needed here.</title>
    <description></description>
    <pubDate>Sat Aug 01 20:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>Trailing whitespace</title>
    <description></description>
    <pubDate>Sat Aug 01 11:00:00 UTC 2026</pubDate>
    <dc:creator>skrll</dc:creator>
</item>

<item>
    <title>Move consulation of RAW_PART from an #if to an if ().</title>
    <description></description>
    <pubDate>Tue Jul 21 14:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>kobj_load(): Consider ELF{32,64}_MACHDEP_FLAGS_OK().</title>
    <description></description>
    <pubDate>Fri Jul 17 14:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>Slim this down for non-MP configurations.</title>
    <description></description>
    <pubDate>Fri Jul 17 02:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>devhandle_impl_subclass(): make sure a handle never has the type INVALID.</title>
    <description></description>
    <pubDate>Fri Jul 17 02:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>Don't bother signalling remote CPUs on non-MP configurations.</title>
    <description></description>
    <pubDate>Fri Jul 17 02:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>Elide subr_ipi.c for non-MP configurations.</title>
    <description></description>
    <pubDate>Fri Jul 17 02:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>kqueue(2): Tighten branch in previous change.<br/><br/>If sleepok is true, then kmem_zalloc should never fail, and this<br/>routine is inline with constant arguments at every call site, so<br/>let's let the compiler prune dead branches for the call sites that<br/>can sleep.<br/><br/>PR kern/60436: kqueue(2): random kernel null pointer deref in<br/>EVFILT_PROC NOTE_TRACK</title>
    <description></description>
    <pubDate>Fri Jul 10 14:00:00 UTC 2026</pubDate>
    <dc:creator>riastradh</dc:creator>
</item>

<item>
    <title>Prevent a DoS attack by crafted binaries that trigger KASSERTS. Change the<br/>KASSERTS into errors instead. Reported by Andrew Griffiths.</title>
    <description></description>
    <pubDate>Thu Jun 18 20:00:00 UTC 2026</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>m_print(): Support TH_ACK flag</title>
    <description></description>
    <pubDate>Wed Jun 17 09:00:00 UTC 2026</pubDate>
    <dc:creator>msaitoh</dc:creator>
</item>

<item>
    <title>Rename the needlessly over-descriptive and at the same time somewhat<br/>non-descriptive "struct powerhook_desc" to just "struct powerhook".</title>
    <description></description>
    <pubDate>Tue May 26 15:00:00 UTC 2026</pubDate>
    <dc:creator>simonb</dc:creator>
</item>

<item>
    <title>Add "rootspec" hooks.  These hooks add a generic mechanism for<br/>devices to advertise extra root device choices.  Use these to<br/>replace wedge-specific code in sys/kern/kern_subr.c .<br/><br/>XXX todo: rootspec configuraton can be unloaded after the root<br/>filesystem is mounted, and rootspechook_establish() calls after<br/>the root filesystem is mounted could then be a no-op.<br/><br/>Thanks riastradh@, mlelstv@ and chs@ for reviews and comments.</title>
    <description></description>
    <pubDate>Tue May 26 14:00:00 UTC 2026</pubDate>
    <dc:creator>simonb</dc:creator>
</item>

<item>
    <title>PGOFSET -&gt; PAGE_MASK</title>
    <description></description>
    <pubDate>Mon May 11 02:00:00 UTC 2026</pubDate>
    <dc:creator>thorpej</dc:creator>
</item>

<item>
    <title>Fix a longstanding bug on 64 bit ports with ABIs requiring sign-extension when returning 32-bit values in registers.  Alpha, MIPS N64, RISCV.<br/><br/>With these ABIs it is necessary for the syscall return code to manually<br/>sign-extend all 32-bit return values.  If we don't, everything may look<br/>just fine, until a syscall return value is spilled to the stack and then<br/>reloaded.  At that point, the zero-extended form produced by C assignment<br/>into the 64-bit register for return to userspace will be sign-extended<br/>upon reload, producing a different, corrupt value which will fail comparisons.<br/>This was observed with a getuid() != geteuid() deep inside sshd on N64, on an<br/>unusual system that had some very large UIDs with bit 31 set - but is quite<br/>difficult to reproduce with small tests, since register pressure and compiler<br/>behavior determine whether the conditions necessary to trigger the bug will<br/>exist.<br/><br/>The easiest way to see whether a new target needs this treatment is to<br/>look at its GCC configuratrion; if its PROMOTE_MODE has UNSIGNEDP = 0<br/>for SImode, the sign-extension in syscall() is necessary.</title>
    <description></description>
    <pubDate>Sun May 10 23:00:00 UTC 2026</pubDate>
    <dc:creator>tls</dc:creator>
</item>
</channel></rss>

