| Index: ui/events/ozone/evdev/touch_event_converter.cc | 
| diff --git a/ui/events/ozone/evdev/touch_event_converter.cc b/ui/events/ozone/evdev/touch_event_converter.cc | 
| index 651e8f0088b5548d7d3321d4226ff486bbba9242..517f0d78b248ca1a5a104016788afccbe35b3b08 100644 | 
| --- a/ui/events/ozone/evdev/touch_event_converter.cc | 
| +++ b/ui/events/ozone/evdev/touch_event_converter.cc | 
| @@ -4,6 +4,7 @@ | 
|  | 
| #include "ui/events/ozone/evdev/touch_event_converter.h" | 
|  | 
| +#include <errno.h> | 
| #include <fcntl.h> | 
| #include <linux/input.h> | 
| #include <poll.h> | 
| @@ -116,8 +117,13 @@ void TouchEventConverterEvdev::OnFileCanWriteWithoutBlocking(int /* fd */) { | 
| void TouchEventConverterEvdev::OnFileCanReadWithoutBlocking(int fd) { | 
| input_event inputs[MAX_FINGERS * 6 + 1]; | 
| ssize_t read_size = read(fd, inputs, sizeof(inputs)); | 
| -  if (read_size <= 0) | 
| +  if (read_size < 0) { | 
| +    if (errno == EINTR || errno == EAGAIN) | 
| +      return; | 
| +    PLOG(ERROR) << "error reading device " << path_.value(); | 
| +    Stop(); | 
| return; | 
| +  } | 
|  | 
| for (unsigned i = 0; i < read_size / sizeof(*inputs); i++) { | 
| const input_event& input = inputs[i]; | 
|  |