OpenBSD cvs log

created 2020-11-21T19:52:55Z
begin 2020-07-15T00:00:00Z
end 2020-07-16T00:00:00Z
path src/sys
commits 18

date 2020-07-15T02:29:26Z
author deraadt
files src/sys/kern/tty.c log diff annotate
message Scott Cheloha convinces me the newly added tsleep_nsec should be tsleep,
to hint we are doing the minimum scheduler sleep (and as side effect,
collecting potential signal status)

date 2020-07-15T03:32:51Z
author jmatthew
files src/sys/dev/pci/if_mcx.c log diff annotate
message Consistently convert syndrome codes from big endian before printing them.

ok dlg@

date 2020-07-15T04:36:02Z
author jmatthew
files src/sys/dev/pci/if_mcx.c log diff annotate
message patrick@ pointed out there was a gap in the flow group numbering.

ok dlg@

date 2020-07-15T07:13:57Z
author kettenis
files src/sys/sys/sensors.h log diff annotate
message POWE9 CPUs provide an energy sensor that accumulates the emount of energy
used by the processor chip. Although we have a SENSOR_WATTHOUR sensor
type its units are not really suitable for this sensor. So add a
SENSOR_ENERGY type that uses micro Joules as its unit.

ok deraadt@

date 2020-07-15T07:15:00Z
author kettenis
files src/sys/arch/powerpc64/dev/opalsens.c log diff annotate
message Use SENSOR_ENERGY as the type of energy sensors.

date 2020-07-15T07:27:07Z
author gerhard
files src/sys/tmpfs/tmpfs_vnops.c log diff annotate
message tmpfs_reclaim() has to make sure the VFS cache has no more locks held
for the vnode.

ok beck@

date 2020-07-15T08:24:29Z
author fcambus
files src/sys/arch/alpha/alpha/cpu.c log diff annotate
src/sys/arch/mips64/mips64/cpu.c log diff annotate
message Use CPU_IS_PRIMARY macro on alpha and mips64.

OK deraadt@, visa@

date 2020-07-15T08:34:25Z
author fcambus
files src/sys/dev/rasops/rasops32.c log diff annotate
message Optimize character rendering in 32bpp mode, with unrolled rows and
pairwise foreground / background pixel rendering.

This does double-pixel rendering for the common font widths (8, 12,
16, and 32 pixels wide), resulting in a significant speed-up.

No regression noticed on 32-bit architectures.

Tested by weerd@, and by abieber@ on macppc.

From John Carmack, thanks!

date 2020-07-15T10:19:42Z
author kettenis
files src/sys/arch/powerpc64/include/intr.h log diff annotate
message Add a forward declaration of struct cpu_info.
Fixes build of RAMDISK kernels.

date 2020-07-15T11:33:12Z
author dtucker
files src/sys/dev/fdt/sxitemp.c log diff annotate
message Run the sxitemp(4) at IPL_SOFTCLOCK instead of IPL_VM. Prevents "panic:
mtx ...: locking against myself" on Orange Pi Zero.

Analysis by patrick@:

"The thermal sensor framework uses its own taskq with IPL_SOFTCLOCK.
sxitemp(4) calls thermal_sensor_update() from interrupt context, and
sxitemp(4) is using IPL_VM (memory allocation?!) for its interrupt.

IPL_VM is obviously higher than IPL_SOFTCLOCK, so it ends up being able
to interrupt the taskq. Even though we're in msleep_nsec, I think we
have *not yet* given up the mutex, that we are holding while looking for
more work, only releasing it while sleeping.

Thus, the interrupt runs task_add(), which tries to grab the taskq's
mutex, even though the taskq already holds it!"

ok patrick@ kettenis@

date 2020-07-15T11:56:29Z
author kn
files src/sys/net/pfkeyv2.c log diff annotate
message Add sizes to free(9) calls

All of these buffers are cleared with explicit sizes before free(), so
reuse the given sizes.

tested and OK tobhe

date 2020-07-15T12:36:01Z
author patrick
files src/sys/arch/arm64/dev/agintc.c log diff annotate
message Fix agintc(4) for non-MULTIPROCESSOR kernels. Due to the recent changes
the driver expected that it can find all CPUs referenced by the interrupt
controller. Since on non-MP we only spin one core up, the driver won't
ever be able to find them. Relax the requirement for non-MP, since the
info extracted there is only needed for MP.

ok kettenis@

date 2020-07-15T13:02:44Z
author mvs
files src/sys/net/if_pppx.c log diff annotate
message Fix races in pppacopen() caused by malloc(9).

ok mpi@

date 2020-07-15T21:20:08Z
author cheloha
files src/sys/kern/kern_time.c log diff annotate
message settimeofday(2): securelevel 2: prevent root from freezing the UTC clock

At securelevel 2 we prevent root from rewinding the kernel UTC clock.
The rationale given in the comment is that this prevents a compromised
root from setting arbitrary timestamps on files.

I can't really speak to the efficacy of this mitigation, or to the
efficacy of the securelevel concept in general, but the implementation
of this mitigation is wrong. We need to check:

timespeccmp(ts, &now, <=)

instead of

timespeccmp(ts, &now, <)

like we do now.

Time is a continuous value that is always advancing. We must prevent
root from setting the kernel UTC clock to its current value in
addition to prior values. Setting the UTC clock to its current value
amounts to rewinding it even if we cannot actually measure the
difference with a timespec.

With this change, at securelevel 2, root can no longer completely
freeze the UTC clock.

date 2020-07-15T22:46:51Z
author deraadt
files src/sys/arch/powerpc64/include/apmvar.h log diff annotate
message powerpc64 has the sysctl's for power control, so it can use the
apmd/apm combo for -L/-H and such. (it gets all the rest of the mess too)
ok kettenis

date 2020-07-15T22:49:07Z
author cheloha
files src/sys/net80211/ieee80211_crypto_tkip.c log diff annotate
message ieee80211: track micfail timeout with getuptime(9) instead of ticks

With input from stsp@.

ok stsp@

date 2020-07-15T22:49:08Z
author cheloha
files src/sys/net80211/ieee80211_var.h log diff annotate
message ieee80211: track micfail timeout with getuptime(9) instead of ticks

With input from stsp@.

ok stsp@

date 2020-07-15T22:58:33Z
author kettenis
files src/sys/arch/arm64/dev/agtimer.c log diff annotate
src/sys/arch/arm64/include/timetc.h log diff annotate
message Userland timecounter implementation for arm64.

ok naddy@