Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-10] src/sys



Module Name:    src
Committed By:   martin
Date:           Wed May 28 15:30:47 UTC 2025

Modified Files:
        src/sys/arch/ia64/include [netbsd-10]: intr.h
        src/sys/arch/sparc64/include [netbsd-10]: psl.h
        src/sys/sys [netbsd-10]: spl.h
        src/sys/uvm [netbsd-10]: uvm_pdpolicy_clock.c

Log Message:
Pull up following revision(s) (requested by bouyer in ticket #1121):

        sys/arch/ia64/include/intr.h: revision 1.9
        sys/uvm/uvm_pdpolicy_clock.c: revision 1.41
        sys/sys/spl.h: revision 1.11
        sys/uvm/uvm_pdpolicy_clock.c: revision 1.42
        sys/arch/sparc64/include/psl.h: revision 1.66

uvmpdpol_pagerealize(): ucpu->pdqhead is used by a single CPU; but

kpreempt_disable() isn't enough to guard against concurent access;
interrupts also need to be disabled.

If my analysis is correct, the only place using ucpu->pdqhead which
can be called from interrupt context it uvmpdpol_pagerealize(), and only
from softbio().

So:
- introduce splsoftbio() in sys/spl.h
- protect all accesses to ucpu->pdqhead with splsoftbio()
fixes pr kern/59412: uvmpdpol_pagerealize() queue index out of bound

Provide splsoftbio()

Remove the redundant kpreempt_disable/kpreempt_enable now that we're
running at splsoftbio. Pointed out by thorpej@


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.8.30.1 src/sys/arch/ia64/include/intr.h
cvs rdiff -u -r1.62.4.2 -r1.62.4.3 src/sys/arch/sparc64/include/psl.h
cvs rdiff -u -r1.10 -r1.10.4.1 src/sys/sys/spl.h
cvs rdiff -u -r1.40 -r1.40.4.1 src/sys/uvm/uvm_pdpolicy_clock.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index