Re: [PATCH 3/3] tools: hv: Check return value of poll call

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> On Thu, Jun 27, 2013 at 5:22 PM, Tomas Hozza <thozza@xxxxxxxxxx> wrote:
> > 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@xxxxxxxxxx>
> > ---
> >  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) {
> 
> From the description it seems that this is a typo. It should be 'while'?

It could be. The reason why you think it is a typo is that in this patch
you don't see that the whole code in in a while loop.

<snip>
	...
	while (1) {
		struct sockaddr *addr_p = (struct sockaddr *) &addr;
		socklen_t addr_l = sizeof(addr);
		pfd.events = POLLIN;
		pfd.revents = 0;
		poll(&pfd, 1, -1);
		...
> 
> > +                       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
> >
> > _______________________________________________
> > devel mailing list
> > devel@xxxxxxxxxxxxxxxxxxxxxx
> > http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
> 
> 
> 
> --
> ~Santosh
> 
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux