X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-terminal%2Fidev-evdev.c;h=18c48ee59259ab16319427619ece2854994fc27f;hb=810626a80de8361dfbe27110d585023b3d6167a6;hp=be9b0301a4c81156a3476f541806e52c5e2e1a7f;hpb=2e1dd622ee7020a608c3397768ea245dcb6409d1;p=elogind.git diff --git a/src/libsystemd-terminal/idev-evdev.c b/src/libsystemd-terminal/idev-evdev.c index be9b0301a..18c48ee59 100644 --- a/src/libsystemd-terminal/idev-evdev.c +++ b/src/libsystemd-terminal/idev-evdev.c @@ -307,18 +307,14 @@ static int idev_evdev_resume(idev_evdev *evdev, int dev_fd) { flags = fcntl(fd, F_GETFL, 0); if (flags < 0) - return r; + return -errno; flags &= O_ACCMODE; if (flags == O_WRONLY) return -EACCES; evdev->element.readable = true; - evdev->element.writable = true; - if (flags == O_RDONLY) - evdev->element.writable = false; - else if (flags == O_WRONLY) - evdev->element.readable = false; + evdev->element.writable = !(flags & O_RDONLY); /* * TODO: We *MUST* re-sync the device so we get a delta of the changed @@ -858,7 +854,6 @@ static int managed_evdev_new(idev_element **out, idev_session *s, struct udev_de int r; assert_return(s, -EINVAL); - assert_return(s->context->sysbus, -EINVAL); assert_return(s->managed, -EINVAL); assert_return(s->context->sysbus, -EINVAL); assert_return(ud, -EINVAL);