OpenBSD cvs log

created 2021-03-28T04:11:44Z
begin 2021-03-23T00:00:00Z
end 2021-03-24T00:00:00Z
path src/sys
commits 5

date 2021-03-23T09:41:12Z
author patrick
files src/sys/arch/arm64/stand/efiboot/efiacpi.c log diff annotate
src/sys/dev/acpi/acpireg.h log diff annotate
message Pack the SPCR struct definition since the struct isn't naturally aligned
or padded, and hence e. g. the access to the PCI vendor/device id would be
broken. The structs for the other tables all seem to be packed as well.

ok kettenis@

date 2021-03-23T10:22:20Z
author mpi
files src/sys/kern/subr_witness.c log diff annotate
message Skip first frame when saving stacktraces, it's always witness_checkorder().

ok visa@

date 2021-03-23T10:30:40Z
author mpi
files src/sys/kern/kern_fork.c log diff annotate
message Make a child execute fork_return() only if PTRACE_FORK has been specified.

fork_return() does an additional check to send a SIGTRAP (for a debugger)
but this signal might overwrite the SIGSTOP generated by the parent doing
a PT_ATTACH before the child has a change to execute any instruction.

Prevent a race visible only on SP system with regress/sys/kern/ptrace2.

ok kettenis@

date 2021-03-23T11:58:38Z
author stsp
files src/sys/net80211/ieee80211_input.c log diff annotate
message When moving the Rx block ack window forward do not implicitly rely on
ieee80211_input_ba_flush() for updating ba->ba_winend.

Required for an upcoming ieee80211_input_ba_flush() fix.

Patch by Christian Ehrhardt who found one instance of this problem in
ieee80211_input_ba_seq(). I spotted another in ieee80211_ba_move_window().

date 2021-03-23T12:03:44Z
author stsp
files src/sys/net80211/ieee80211_input.c log diff annotate
message Fix a corner case bug in Rx block ack window gap-wait timeout handling.

If ieee80211_input_ba_flush() was called when there was nothing to flush,
the (already pending) gap wait timeout was re-armed.
This is only correct if we flush at least one packet. Otherwise packets
that arrive at a constant rate of about 4-5 packets per second would
extend the gap-wait timeout until the block ack window fills up.
In extreme cases this can result in packets being queued for almost 20s.

Fix this by returning immediately from ieee80211_input_ba_flush() if
the first packet in the reordering buffer is missing.
This prevents the timeout from being re-armed.

Patch by Christian Ehrhardt. Tested by me on iwm(4) 7265.