Subject: Re: net_dma: mark broken

From: Dave Jones <[email-masked]>
Date: Mon, 23 Dec 2013 11:21:13 -0500

On Fri, Dec 20, 2013 at 09:12:28PM +0000, Linux Kernel wrote:
 > Gitweb:     http://git.kernel.org/linus/;a=commit;h=77873803363c9e831fc1d1e6895c084279090c22
 > Commit:     77873803363c9e831fc1d1e6895c084279090c22
 > Parent:     0baf8f6a2ac86c2c40ed0cacab8ea3d17371a1bb
 > Author:     Dan Williams <[email-masked]>
 > AuthorDate: Tue Dec 17 10:09:32 2013 -0800
 > Committer:  Dan Williams <[email-masked]>
 > CommitDate: Wed Dec 18 12:53:43 2013 -0800
 > 
 >     net_dma: mark broken
 >     
 >     net_dma can cause data to be copied to a stale mapping if a
 >     copy-on-write fault occurs during dma.  The application sees missing
 >     data.

Since this commit, coverity picked up a possible logic contradiction in tcp_rcv_established
Now that the only thing setting copied_early = 1 is inside an ifdef that won't be set,
it notes that this code is unreachable..

5271                        if (!copied_early || tp->rcv_nxt != tp->rcv_wup)
5272                                __tcp_ack_snd_check(sk, 0);

I don't understand all the subtleties of that huge function, so another
set of eyes would be appreciated.  If it's a non-issue, I'll flag it as such
for coverity so it doesn't get picked up again.

	Dave