From 9f3a6ac97e9d3f13cdfb38e54fbce92452025830 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Mon, 14 May 2018 09:49:00 +1000
Subject: [PATCH synaptics] eventcomm: if we get a read error other than
 EAGAIN, remove the fd

Otherwise poll() keeps on triggering on our fd until udev gets around to
notifying the server that the device is in some state of deadness. Meanwhile,
the input thread is busy filling the log up with "Read error" messages. Great
way to test file systems and their capacity to handle out of space scenarios
but otherwise a bit pointless. Those FS developers should write their own
tests instead of relying on the synaptics driver!

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
---
 src/eventcomm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/eventcomm.c b/src/eventcomm.c
index f65d532..3d0c5b0 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -557,6 +557,7 @@ SynapticsReadEvent(InputInfoPtr pInfo, struct input_event *ev)
         if (rc != -EAGAIN) {
             LogMessageVerbSigSafe(X_ERROR, 0, "%s: Read error %d\n", pInfo->name,
                     errno);
+            xf86RemoveEnabledDevice(pInfo);
         } else if (proto_data->read_flag == LIBEVDEV_READ_FLAG_SYNC) {
             proto_data->read_flag = LIBEVDEV_READ_FLAG_NORMAL;
             return SynapticsReadEvent(pInfo, ev);
-- 
2.14.3

