OpenBSD cvs log

created 2021-05-16T07:43:53Z
begin 2021-05-13T00:00:00Z
end 2021-05-14T00:00:00Z
path src/sys
commits 12

date 2021-05-13T02:22:33Z
author krw
files src/sys/scsi/scsi_base.c log diff annotate
message Whitespace fix for unintentional unindenting event in r1.260.

Reported by Ashton Fagg via tech@. Thanks!

date 2021-05-13T06:44:11Z
author kettenis
files src/sys/arch/riscv64/riscv64/exception.S log diff annotate
message When doing AST processing:
1) block interrupts, then check for ASTs
2) if no ASTs, return with interrupts blocked, so they can be re-enabled
ATOMICALLY in the return to userspace
3) if an AST happened, then re-enable interrupts, call ast(), then goto 1

ok jsg@

date 2021-05-13T06:45:23Z
author kettenis
files src/sys/arch/riscv64/riscv64/trap.c log diff annotate
message No need to disable interrupts before returning to userland.
The AST processing code will take care of doing that for us.

ok jsg@

date 2021-05-13T08:44:18Z
author jsg
files src/sys/arch/riscv64/include/signal.h log diff annotate
message change sig_atomic_t from long to int matching all the other archs

ok kettenis@

date 2021-05-13T09:32:00Z
author kettenis
files src/sys/arch/riscv64/dev/plic.c log diff annotate
message Run handlers with interrupts enabled.

ok jsg@

date 2021-05-13T16:08:16Z
author kettenis
files src/sys/arch/arm64/arm64/machdep.c log diff annotate
message Make memreg_add() a bit smarter and have it merge adjacent regions.
This should reduce the number of physical memory segments that we pass
to uvm reducing the chance that we run out of physical memory segments
and should make physical memory allocation a bit more efficient.

ok patrick@

date 2021-05-13T17:02:31Z
author mvs
files src/sys/kern/uipc_syscalls.c log diff annotate
message Move ktrfds() below fdpunlock(). This fixes lock order issue between
vn_lock(9) and fdplock().

Reported-by: [email protected]

ok visa@

date 2021-05-13T17:31:59Z
author mvs
files src/sys/kern/uipc_syscalls.c log diff annotate
message Assign NULL instead of 0 to `control' within sendit(). It's mbuf(9)
pointer.

ok deraadt@

date 2021-05-13T18:06:54Z
author mvs
files src/sys/kern/uipc_socket.c log diff annotate
message Use NULL instead of 0 for mbuf(9) pointers.

ok millert@

date 2021-05-13T19:26:25Z
author kettenis
files src/sys/arch/riscv64/dev/plic.c log diff annotate
src/sys/arch/riscv64/dev/riscv_cpu_intc.c log diff annotate
src/sys/arch/riscv64/include/intr.h log diff annotate
src/sys/arch/riscv64/riscv64/intr.c log diff annotate
src/sys/arch/riscv64/riscv64/machdep.c log diff annotate
src/sys/arch/riscv64/riscv64/pmap.c log diff annotate
src/sys/arch/riscv64/riscv64/syscall.c log diff annotate
message Use intr_enable()/int_disable()/intr_restore() instead of
enable_interrupts()/disable_interrupts()/restore_interrupts() and remove
the latter interfaces.

ok mlarkin@, drahn@

date 2021-05-13T19:43:11Z
author mvs
files src/sys/kern/uipc_socket.c log diff annotate
message Do `so_rcv' cleanup with sblock() held.

solock() should be taken before sblock(). soreceive() grabs solock() and
then locks `so_rcv'. But later it releases solock() before call uimove(9).
So concurrent thread which performs soshutdown() could break sorecive()
loop. But `so_rcv' is still locked by sblock() so this soshutdown()
thread will sleep in sorflush() at sblock() call. soshutdown() thread
doesn't release solock() after sblock() call so it has no matter where to
release `so_rcv' - is will be locked until the solock() release.

That's why this strange looking code works fine. This sbunlock() movement
just after `so_rcv' cleanup affects nothing but makes the code
consistent and clean to understand.

ok mpi@

date 2021-05-13T22:42:14Z
author kettenis
files src/sys/arch/powerpc64/powerpc64/machdep.c log diff annotate
message Improve mereg_add() like I did on arm64.