[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20120919.161020.2081071541564248020.davem@davemloft.net>
Date: Wed, 19 Sep 2012 16:10:20 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: mkubecek@...e.cz
Cc: kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org,
kaber@...sh.net, netdev@...r.kernel.org
Subject: Re: [PATCH net] tcp: flush DMA queue before sk_wait_data if
rcv_wnd is zero
From: Michal Kubecek <mkubecek@...e.cz>
Date: Fri, 14 Sep 2012 16:59:52 +0200
> If recv() syscall is called for a TCP socket so that
> - IOAT DMA is used
> - MSG_WAITALL flag is used
> - requested length is bigger than sk_rcvbuf
> - enough data has already arrived to bring rcv_wnd to zero
> then when tcp_recvmsg() gets to calling sk_wait_data(), receive
> window can be still zero while sk_async_wait_queue exhausts
> enough space to keep it zero. As this queue isn't cleaned until
> the tcp_service_net_dma() call, sk_wait_data() cannot receive
> any data and blocks forever.
>
> If zero receive window and non-empty sk_async_wait_queue is
> detected before calling sk_wait_data(), process the queue first.
>
> Signed-off-by: Michal Kubecek <mkubecek@...e.cz>
Applied and queued up for -stable, thanks.
> Cc: <stable@...r.kernel.org>
Please do not CC: stable on networking bug fixes like this.
Simply ask me to add it to the networking -stable queue instead.
I do not want fixes to propagate immedately to -stable right when they
hit Linus's tree. Rather, I want them to soak upstream for a while
before they get submitted to -stable.
And that's why I maintain a special queue for networking fixes
which should be submitted to -stable at some point in the future
at:
http://patchwork.ozlabs.org/user/bundle/2566/?state=*
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists