OpenBSD cvs log

created 2018-11-29T23:12:17Z
begin 2018-07-07T00:00:00Z
end 2018-07-08T00:00:00Z
path src/sys
commits 7

date 2018-07-07T10:55:26Z
author landry
files src/sys/dev/usb/usbdevs log diff annotate
message Add ids for Logitech Webcam C250, also affected by the 'bogus
FEATURE_UNIT bLength' issue.

ok mpi@

date 2018-07-07T10:55:50Z
author landry
files src/sys/dev/usb/usbdevs.h log diff annotate
src/sys/dev/usb/usbdevs_data.h log diff annotate
message regen

date 2018-07-07T13:03:08Z
author landry
files src/sys/dev/usb/uaudio.c log diff annotate
message Fix uaudio(4) detection on Logitech Webcam C200/C210/C250/C270/C310/C500.

Those devices have a broken AudioControl descriptor which advertises a
bad value for bLength for the FEATURE_UNIT sub-descriptor, so add a
quirk 'fixing' this bLength so that uaudio(4) attaches properly instead
of bailing out with 'audio descriptors make no sense, error=4'.

My C310 now properly attaches but doesnt seem to work right now, this is
a different issue that will be worked on.

Thanks to tb@, remi@, weerd@, Raf Czlonka, Base Pr1me, Jordan Geoghegan,
Peter J. Philipp, Alfredo Vogel, James Hastings, Bruno Flueckiger,
Remco & Alex Tsang for providing lsusb -v output for a large variety of
Logitech Webcams.

ok mpi@ ratchov@

date 2018-07-07T15:19:25Z
author visa
files src/sys/kern/kern_sched.c log diff annotate
message Release the kernel lock fully on thread exit. This prevents a locking
error that would happen otherwise when a traced and stopped
multithreaded process is forced to exit. The error shows up as a kernel
panic when WITNESS is enabled. Without WITNESS, the error causes
a system hang.

sched_exit() has expected that a single KERNEL_UNLOCK() would release
the lock completely. That assumption is wrong when an exit happens
through the signal tracing logic:

sched_exit
exit1
single_thread_check
single_thread_set
issignal <-- KERNEL_LOCK()
userret <-- KERNEL_LOCK()
syscall

The error is a regression of r1.216 of kern_sig.c.

Panic reported and fix tested by Laurence Tratt
OK mpi@

date 2018-07-07T15:40:02Z
author visa
files src/sys/kern/spec_vnops.c log diff annotate
message Fix a locking error in spec_setattr(). Unlike many VOP operations,
VOP_SETATTR() does not release the vnode lock (and it has never done
the unlocking in the past). Therefore spec_setattr() has to keep the
argument vnode locked and unlock v_specparent instead after the nested
VOP_SETATTR() call.

Fixes a WITNESS panic found by anton@
OK anton@, mpi@

date 2018-07-07T15:41:25Z
author visa
files src/sys/kern/spec_vnops.c log diff annotate
message Remember to lock v_specparent for VOP operations.

OK anton@, mpi@

date 2018-07-07T16:14:40Z
author visa
files src/sys/kern/kern_descrip.c log diff annotate
message Fix an argument type error that happens when translating fcntl(F_SETOWN)
to ioctl(TIOCSPGRP). The ioctl handlers expect a pointer to an int, so
read the argument into a local int variable and pass the variable's
address to the handler instead of referencing SCARG(uap, arg) directly.

OK guenther@, mpi@