[evdev] Do not ignore result evdev_register in UI_DEV_CREATE handler

Make sure that uinput state field reflects actual state by checking
evdev_register result for errors

Submitted by:	Vladimir Kondratiev <wulf@cicgroup.ru>
Differential Revision:	https://reviews.freebsd.org/D9320
This commit is contained in:
Oleksandr Tymoshenko 2017-03-12 19:26:24 +00:00
parent ffec315183
commit 670aa764b0

View file

@ -501,9 +501,10 @@ uinput_ioctl_sub(struct uinput_cdev_state *state, u_long cmd, caddr_t data)
evdev_set_methods(state->ucs_evdev, state, &uinput_ev_methods);
evdev_set_flag(state->ucs_evdev, EVDEV_FLAG_SOFTREPEAT);
evdev_register(state->ucs_evdev);
state->ucs_state = UINPUT_RUNNING;
return (0);
ret = evdev_register(state->ucs_evdev);
if (ret == 0)
state->ucs_state = UINPUT_RUNNING;
return (ret);
case UI_DEV_DESTROY:
if (state->ucs_state != UINPUT_RUNNING)