Age | Commit message (Collapse) | Author |
|
OK ratchov@, visa@
|
|
ok deraadt@, jsg@
|
|
Do not switch from the DETECT state to IGNORE when the last (active) touch
has been released. Otherwise, depending on how events are reported and
synchronized, it may happen that the handler does not switch back to DETECT
when necessary.
|
|
ok patrick@
|
|
|
|
Trivial conversion from ticks to milliseconds where macros already come in
milliseconds and timeout values only need reduction by hz to use the new API.
OK mpi
|
|
determine if the device was opened in read/write mode.
ok mpi@ visa@
|
|
function name in order to reduce grep noise. Also, some of them where referring
to the wrong function.
|
|
after checking for exclusive access, malloc() can sleep in
wsevent_init() opening up for a potential race where more than one
thread may be able open the device. Prevent this by checking if the race
was won after calling malloc().
While here, switch to mallocarray as proposed by both cheloha@ and mpi@
ok mpi@
|
|
previous commit message:
In wsmuxclose(), use the same logic as in wsmuxopen() to determine if
the device was opened in write-only mode. Relying on me_evar being NULL
does not work if the wsmux device was opened first followed attaching it
to another wsmux. Closing the wsmux device first at this stage would
cause the wscons_event queue inherited from the parent wsmux to be
freed. This in turn could cause a panic if an ioctl(WSMUXIO_INJECTEVENT)
command is issued on parent wsmux device.
ok mpi@ visa@
Reported-by: syzbot+f6c2ed7901eb4b970720@syzkaller.appspotmail.com
|
|
OK deraadt@
|
|
when we have a serial console by introducing the notion of a "primary"
graphics device. The primary graphics device is the one set up and
used by firmware (BIOS, UEFI).
The goal is to make sure that wsdisplay0 and drm0 reliably attach to
the primary graphics device such that X works out of the box even
if you have multiple cards or if you are using a serial console.
This also fixes the situation where inteldrm(4) or radeondrm(4) would
take over the console on UEFI systems even if the kernel was booted
with a serial console.
ok jsg@
|
|
already does. Otherwise, malloc could panic if the device minor is sufficiently
large.
ok kettenis@ mpi@ visa@
Reported-by: syzbot+5a77a0fd8810d0785f61@syzkaller.appspotmail.com
|
|
|
|
|
|
|
|
before. The pointer indicates if a wsmux device is attached to another
wsmux, clearing it therefore allows same device to attached again. This
can be problematic since wsmux_do_close() can sleep. Swapping the order
of operations prevents attaching a wsmux which is in a closing state.
ok deraadt@ mpi@ visa@
|
|
of such devices can exhaust the kernel stack due to wsmux_do_open() being
recursive. While here, serialize the operation of stacking a wsmux device.
Joint effort with and ok visa@
|
|
ioctl(WSMUXIO_ADD_DEVICE), two distinct locks of the same type are
acquired. Thus, witness will emit warning. Since acquiring two different
locks of the same type is harmless in this context, relax the witness
check by flagging the locks as RWL_DUPOK.
ok visa@
Reported-by: syzbot+249e483406a1f7843915@syzkaller.appspotmail.com
|
|
|
|
|
|
wsmux. When invoking wsevsrc_* functions on a attached child device,
underlying driver can sleep; this introduces a race where another thread
is able to modify the list leading to all kinds of corruptions.
ok visa@
Reported-by: syzbot+03f7377a9848d7d008c9@syzkaller.appspotmail.com
|
|
|
|
the device was opened in write-only mode. Relying on me_evar being NULL
does not work if the wskbd device was opened first followed by opening a
wsmux device. Closing the wskbd device first at this stage would cause
the wscons_event queue inherited from the wsmux device to be freed. This
in turn could cause a panic if an ioctl(WSMUXIO_INJECTEVENT) command is
issued to the wsmux device.
ok deraadt@ visa@
Reported-by: syzbot+ed88256423ae8d882b8b@syzkaller.appspotmail.com
|
|
C99 inline semantics resulted in undefined symbols.
OK deraadt@ mpi@ dlg@
|
|
|
|
index is used to index an array which could cause a panic if it's negative.
ok deraadt@
Reported-by: syzbot+c5997876fea393e6b948@syzkaller.appspotmail.com
|
|
them consistently.
|
|
ok mpi@ (to the concept)
|
|
error for inappropriate ioctl commands. Prevents a panic caused by using a wsmux
device as the controlling terminal.
ok deraadt@ visa@
Reported-by: syzbot+44bab40fc5a11357d774@syzkaller.appspotmail.com
|
|
ok mpi@
|
|
ok visa@
|
|
translates such requests into TIOCSPGRP.
ok visa@
|
|
of the process who opens the device the default recipient of sigio is removed as
a side-effect of this change. Issuing ioctl(FIOSETOWN) is therefore mandatory in
order to receive sigio, which is more consistent with other subsystems
supporting sigio.
This change is all made possible by the new sigio(9) API and prevents wscons
from keeping a pointer to the recipient process. Usage of such pointer could
cause a panic since wscons is not inform on process deallocation, leaving a
dangling pointer behind.
ok mpi@ visa@
|
|
|
|
It seems that the filter is obsolete, the default method is sufficient.
Simplify and clean up some related code in wsmouse.
ok mpi@
|
|
ok mpi@
|
|
claiming to be elantech devices
|
|
purposes can be enabled and disabled by WSMOUSEIO_SETPARAMS
requests.
|
|
this gets rid of the source annotation which doesn't really add
anything other than adding complexitiy. randomess is generally
good enough that the few extra bits that the source type would
add are not worth it.
ok mikeb@ deraadt@
|
|
keyboard late.
This makes keyboard re-attaching due to the machdep.forceukbd sysctl(2)
respect /etc/kbdtype.
Issue reported by Artturi Alm, jmc@ and landry@.
ok kettenis@
|
|
The account flag `ASU' will no longer be set but that makes suser()
mpsafe since it no longer mess with a per-process field.
No objection from millert@, ok tedu@, bluhm@
|
|
OK visa@
|
|
OK deraadt@, visa@, mpi@
|
|
|
|
Single-touch and multi-touch coordinate inputs are treated more uniformly,
and the hysteresis filters have a more consistent implementation. If
possible, pointer control will be assigned to touches with coordinate
updates that pass the default hysteresis filter (the function has been
moved to wsmouse.c). The "strong" variant of hysteresis has been
improved, the new version won't double the threshold when a movement
changes the orientation on an axis.
There is an additional change in wstpad_configure, which ensures that a
zero size disables an edge area even if the coordinate limits are
misconfigured.
|
|
|
|
setup.
|
|
sizes of edge areas, vertical edge areas as default, and a check for
the WSMOUSE_TYPE that may detect clickpads where software buttons
should be placed at the top edge).
|
|
that identify and mask touches resting in the bottom area.
|