Messages in this thread | | | Date | Fri, 23 May 2014 15:00:55 -0400 (EDT) | Subject | Re: [PATCH/RFC] Re: recvmmsg() timeout behavior strangeness [RESEND] | From | David Miller <> |
| |
From: Arnaldo Carvalho de Melo <acme@kernel.org> Date: Wed, 21 May 2014 18:05:35 -0300
> But after thinking a bit more, looks like we need to do that, please > take a look at the attached patch to see if it addresses the problem. > > Mostly it adds a new timeop to the per protocol recvmsg() > implementations, that, if not NULL, should be used instead of > SO_RCVTIMEO. > > since the underlying recvmsg implementations already check that timeout, > return what is remaining, that will then be used in subsequent recvmsg > calls, at the end we just convert it back to timespec format. > > In most cases it is just passed to skb_recv_datagram, that will check > the pointer, use it and update if not NULL. > > Should have no problems, but I only did a boot with a system with this > patch applied, no problems noticed on a normal desktop session, ssh, > etc.
This looks fine to me, but I have a small request:
+ return noblock ? 0 : timeop ? *timeop : sk->sk_rcvtimeo;
I keep forgetting which way these expressions associate, so if you could parenthesize the innermost ?: I'd appreciate it. :)
Thanks!
| |