OpenBSD cvs log

created 2023-12-12T07:25:24Z
begin 2023-12-07T00:00:00Z
end 2023-12-08T00:00:00Z
path src/sys
commits 6

date 2023-12-07T09:46:58Z
author uwe
files src/sys/dev/mii/eephy.c log diff annotate
src/sys/dev/mii/eephyreg.h log diff annotate
message avoid bad register access in eephy_reset for Marvell Alaska 88E1512

The register write before this change had no visible run-time effect
on 88E1512 under normal conditions but it tried to update a reserved
bit and might prevent the standard behaviour of breaking the link on
insufficient Inter-Packet Gaps.

Cross-checked with datasheets for supported variants. Extended special
control register 20 exists only in E1111 but not in E151x, E1545x, or
E3016. It seems that the register was dropped in E15xx and subsequent
designs.

Originally from stsp@

ok claudio@ stsp@

date 2023-12-07T13:59:04Z
author deraadt
files src/sys/kern/syscalls.master log diff annotate
message Add a stub pinsyscalls() system call that simply returns 0 for now,
before future work where ld.so(1) will need this new system call.
Putting this in the kernel ahead of time will save some grief.
ok kettenis

date 2023-12-07T13:59:05Z
author deraadt
files src/sys/uvm/uvm_mmap.c log diff annotate
message Add a stub pinsyscalls() system call that simply returns 0 for now,
before future work where ld.so(1) will need this new system call.
Putting this in the kernel ahead of time will save some grief.
ok kettenis

date 2023-12-07T14:00:15Z
author deraadt
files src/sys/sys/syscall.h log diff annotate
src/sys/sys/syscallargs.h log diff annotate
message sync

date 2023-12-07T14:00:16Z
author deraadt
files src/sys/kern/init_sysent.c log diff annotate
src/sys/kern/syscalls.c log diff annotate
message sync

date 2023-12-07T16:08:30Z
author bluhm
files src/sys/netinet/in_pcb.c log diff annotate
src/sys/netinet/in_pcb.h log diff annotate
src/sys/netinet6/in6_pcb.c log diff annotate
message Inpcb table mutex protects addr and port during bind(2) and connect(2).

in_pcbbind(), in_pcbconnect(), and in6_pcbconnect() have to set
addresses and ports within the same critical section as the inpcb
hash table calculation. Also lookup and address selection have to
be protected to avoid bindings and connections that are not unique.

For that in_pcbpickport() and in_pcbbind_locked() expect that the
table mutex is already taken. The functions in_pcblookup_lock(),
in_pcblookup_local_lock(), and in_pcbaddrisavail_lock() grab the
mutex iff the lock parameter is IN_PCBLOCK_GRAB. Otherwise the
parameter is IN_PCBLOCK_HOLD has the lock has to be taken already.
Note that in_pcblookup_lock() and in_pcblookup_local() return an
inp with increased reference iff they take and release the lock.
Otherwise the caller protects the life time of the inp.

This gives enough flexibility that in_pcbbind() and in_pcbconnect()
can hold the table mutex when they need it. The public inpcb API
does not change.

OK sashan@ mvs@