return ETIMEDOUT if we meet a timeout in poll
We don't want to wait on uevent forever, but the return value
of polling in timeout is 0 rather than a negative value.
manpage of poll as below:
On success, a positive number is returned; this is the number of structures which
have nonzero revents fields (in other words, those descriptors with events or errors reported).
A value of 0 indicates that the call timed out and no file descriptors were ready.
On error, -1 is returned, and errno is set appropriately.