[PATCH 3/3] tools: hv: Check return value of poll call
KY Srinivasan
kys at microsoft.com
Thu Jun 27 12:32:56 UTC 2013
> -----Original Message-----
> From: Tomas Hozza [mailto:thozza at redhat.com]
> Sent: Thursday, June 27, 2013 7:53 AM
> To: gregkh at linuxfoundation.org
> Cc: jasowang at redhat.com; devel at linuxdriverproject.org; KY Srinivasan; Haiyang
> Zhang; Tomas Hozza
> Subject: [PATCH 3/3] tools: hv: Check return value of poll call
>
> Check return value of poll call and if it fails print error to the
> system log. If errno is EINVAL then exit with non-zero value otherwise
> continue the while loop and call poll again.
>
> Signed-off-by: Tomas Hozza <thozza at redhat.com>
Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
> ---
> tools/hv/hv_vss_daemon.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/tools/hv/hv_vss_daemon.c b/tools/hv/hv_vss_daemon.c
> index 6c4d2f1..826d499 100644
> --- a/tools/hv/hv_vss_daemon.c
> +++ b/tools/hv/hv_vss_daemon.c
> @@ -204,7 +204,16 @@ int main(void)
> socklen_t addr_l = sizeof(addr);
> pfd.events = POLLIN;
> pfd.revents = 0;
> - poll(&pfd, 1, -1);
> +
> + if (poll(&pfd, 1, -1) < 0) {
> + syslog(LOG_ERR, "poll failed; error:%d %s", errno,
> strerror(errno));
> + if (errno == EINVAL) {
> + close(fd);
> + exit(EXIT_FAILURE);
> + }
> + else
> + continue;
> + }
>
> len = recvfrom(fd, vss_recv_buffer, sizeof(vss_recv_buffer), 0,
> addr_p, &addr_l);
> --
> 1.8.1.4
>
>
More information about the devel
mailing list