Backport "ueventd: fix a busy loop while reading uevents"

commit 1d4e86c44589b3a97ca0113493c2e569c3aabcc6
Author: Amir Goldstein <amir@cellrox.com>
Date: Sun, 10 Nov 2013 15:36:58 +0200

    ueventd: fix a busy loop while reading uevents

    Under certain conditions, poll() may raise the POLLERR
    flag along with POLLIN, in which case the check for
    (ufd.revents == POLLIN) results in an endless busy loop.

    The following fix was applied to
    hardware/libhardware_legacy/uevent/uevent.c
    to fix a similar bug:

      commit 3aabb260ceef10377c31c9e45fb239247f5cfeba
      Author: Mathias Agopian <mathias@google.com>
      Date:   Mon Oct 1 14:53:18 2012 -0700

        fix a typo in uevent_next_eventi

        Bug: 7114973
        Change-Id: I15a4c714b59aeb1d02db00517d70b5f0e5ab22c2

    Applying the same fix for two more poll loops in init
    and ueventd.

    Change-Id: I50693f6d3c904992ac4b8a9a14a83c7106e6b9e0