diff --git a/android/avctp.c b/android/avctp.c
index 8a0d6a1..bc1bd80 100644
--- a/android/avctp.c
+++ b/android/avctp.c
static int send_event(int fd, uint16_t type, uint16_t code, int32_t value)
{
struct uinput_event event;
+ int err;
memset(&event, 0, sizeof(event));
event.type = type;
event.code = code;
event.value = value;
- return write(fd, &event, sizeof(event));
+ do {
+ err = write(fd, &event, sizeof(event));
+ } while (err < 0 && errno == EINTR);
+
+ if (err < 0) {
+ err = -errno;
+ error("send_event: %s (%d)", strerror(-err), -err);
+ }
+
+ return err;
}
static void send_key(int fd, uint16_t key, int pressed)