ixgbe: prevent speculative processing of descriptors before ready
----- Original Message Follows -----
From: Ben Hutchings <[email protected]>
To: Greg KH <[email protected]>
Cc: [email protected], [email protected], Don Skidmore <[email protected]>, Milton Miller <[email protected]>, "David S. Miller" <[email protected]>, Anton Blanchard <[email protected]>, [email protected], [email protected], [email protected], [email protected], Jeff Kirsher <[email protected]>
Subject: Re: [Stable-review] [22/68] ixgbe: prevent speculative processing of descriptors before ready
Date: Tue, 01 Mar 2011 02:14:33 +0000
Quoted 19 lines · Greg KH
Quoted 6 lines
2.6.32-longterm review patch. If anyone has any objections, please let us know.
------------------From: Milton Miller <[email protected]>
Quoted 12 lines
commit
3c945e5b3719bcc18c6ddd31bbcae8ef94f3d19aupstream.
The PowerPC architecture does not require loads to independent bytes to be ordered without adding an explicit barrier.
Inixgbe_clean_rx_irqwe load the status bit then load the packet data. With packet split disabled if these loads go out of order we get a stale packet, but we will notice the bad sequence numbers and drop it. The problem occurs with packet split enabled where the TCP/IP header and data are in different descriptors. If the reads go out of order we may have data that doesn't
Quoted 6 lines
match the TCP/IP header. Since we use hardware
Quoted 1 line
checksumming this bad data is never verified and it
makes it all the way to the application. [...]
Packet splitting should be completely disabled on the 82599, anyway. Greg, what happened to this patch:
This was initially observed on 82598 and is still needed there.
milton