OpenBSD cvs log

created 2021-12-26T02:47:59Z
begin 2021-12-23T00:00:00Z
end 2021-12-24T00:00:00Z
path src/sys
commits 12

date 2021-12-23T01:39:44Z
author jsg
files src/sys/dev/pci/if_et.c log diff annotate
message give et_setmulti() more chance of working
ok claudio@

date 2021-12-23T02:12:52Z
author jsg
files src/sys/msdosfs/direntry.h log diff annotate
message make array bounds in unix2dosfn() prototype match function
missed when unix2dosfn() was changed with msdosfs_conv.c rev 1.15 in 2012

date 2021-12-23T10:04:14Z
author bluhm
files src/sys/conf/GENERIC log diff annotate
message Template for option WITNESS is in the architecture GENERIC.MP file
if it is supported. Remove it from the global GENERIC config.
OK visa@ claudio@

date 2021-12-23T10:09:16Z
author bluhm
files src/sys/dev/vnd.c log diff annotate
message Disk lock was held when returning to userland. Add a missing unlock
in vnd ioctl error path.
Reported-by: [email protected]
OK jsg@ anton@

date 2021-12-23T10:17:01Z
author bluhm
files src/sys/kern/kern_sysctl.c log diff annotate
message Use TAILQ_FOREACH to traverse the disk list in sysctl_diskinit().
OK anton@

date 2021-12-23T12:14:15Z
author anton
files src/sys/dev/usb/uhidpp.c log diff annotate
message Get rid of unused next battery level argument.

date 2021-12-23T12:21:48Z
author bluhm
files src/sys/net/if_bridge.c log diff annotate
src/sys/netinet/ip_ah.c log diff annotate
src/sys/netinet/ip_esp.c log diff annotate
src/sys/netinet/ip_ipcomp.c log diff annotate
src/sys/netinet/ip_output.c log diff annotate
src/sys/netinet/ipsec_input.c log diff annotate
src/sys/netinet/ipsec_output.c log diff annotate
src/sys/netinet6/ip6_output.c log diff annotate
message IPsec is not MP safe yet. To allow forwarding in parallel without
dirty hacks, it is better to protect IPsec input and output with
kernel lock. Not much is lost as crypto needs the kernel lock
anyway. From here we can refine the lock later.
Note that there is no kernel lock in the SPD lockup path. Goal is
to keep that lock free to allow fast forwarding with non IPsec
traffic.
tested by Hrvoje Popovski; OK tobhe@

date 2021-12-23T18:50:31Z
author guenther
files src/sys/kern/syscalls.master log diff annotate
src/sys/kern/vfs_syscalls.c log diff annotate
message Roll the syscalls that have an off_t argument to remove the explicit padding.
Switch libc and ld.so to the generic stubs for these calls.
WARNING: reboot to updated kernel before installing libc or ld.so!

Time for a story...

When gcc (back in 1.x days) first implemented long long, it didn't (always)
pass 64bit arguments in 'aligned' registers/stack slots, with the result that
argument offsets didn't match structure offsets. This affected the nine system
calls that pass off_t arguments:
ftruncate lseek mmap mquery pread preadv pwrite pwritev truncate

To avoid having to do custom ASM wrappers for those, BSD put an explicit pad
argument in so that the off_t argument would always start on a even slot and
thus be naturally aligned. Thus those odd wrappers in lib/libc/sys/ that use
__syscall() and pass an extra '0' argument.

The ABIs for different CPUs eventually settled how things should be passed on
each and gcc 2.x followed them. The only arch now where it helps is landisk,
which needs to skip the last argument register if it would be the first half of
a 64bit argument. So: add new syscalls without the pad argument and on landisk
do that skipping directly in the syscall handler in the kernel. Keep compat
support for the existing syscalls long enough for the transition.

ok deraadt@

date 2021-12-23T18:50:32Z
author guenther
files src/sys/arch/hppa/hppa/trap.c log diff annotate
src/sys/arch/sh/sh/trap.c log diff annotate
src/sys/kern/kern_ktrace.c log diff annotate
src/sys/kern/kern_pledge.c log diff annotate
src/sys/uvm/uvm_mmap.c log diff annotate
message Roll the syscalls that have an off_t argument to remove the explicit padding.
Switch libc and ld.so to the generic stubs for these calls.
WARNING: reboot to updated kernel before installing libc or ld.so!

Time for a story...

When gcc (back in 1.x days) first implemented long long, it didn't (always)
pass 64bit arguments in 'aligned' registers/stack slots, with the result that
argument offsets didn't match structure offsets. This affected the nine system
calls that pass off_t arguments:
ftruncate lseek mmap mquery pread preadv pwrite pwritev truncate

To avoid having to do custom ASM wrappers for those, BSD put an explicit pad
argument in so that the off_t argument would always start on a even slot and
thus be naturally aligned. Thus those odd wrappers in lib/libc/sys/ that use
__syscall() and pass an extra '0' argument.

The ABIs for different CPUs eventually settled how things should be passed on
each and gcc 2.x followed them. The only arch now where it helps is landisk,
which needs to skip the last argument register if it would be the first half of
a 64bit argument. So: add new syscalls without the pad argument and on landisk
do that skipping directly in the syscall handler in the kernel. Keep compat
support for the existing syscalls long enough for the transition.

ok deraadt@

date 2021-12-23T18:50:59Z
author guenther
files src/sys/kern/init_sysent.c log diff annotate
src/sys/kern/syscalls.c log diff annotate
src/sys/sys/syscall.h log diff annotate
src/sys/sys/syscallargs.h log diff annotate
message sync

date 2021-12-23T20:48:24Z
author patrick
files src/sys/arch/arm64/dev/aplpinctrl.c log diff annotate
message Fix endless loop in the interrupt handler. When iterating over each
GPIO base register we must not replace the iterator variable with the
index of the pin inside the register.

ok kettenis@

date 2021-12-23T22:35:11Z
author bluhm
files src/sys/netinet/ip_ah.c log diff annotate
src/sys/netinet/ip_esp.c log diff annotate
message Remove unused variables and assignments in ah and esp output.
found by clang 13; OK tobhe@