Re: [Stable-review] [22/68] ixgbe: prevent speculative processing of descriptors before ready

From: miltonm
Date: Tue Mar 01 2011 - 23:51:50 EST




----- Original Message Follows -----
From: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
To: Greg KH <gregkh@xxxxxxx>
Cc: linux-kernel@xxxxxxxxxxxxxxx, stable@xxxxxxxxxx, Don
Skidmore <donald.c.skidmore@xxxxxxxxx>, Milton Miller
<miltonm@xxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>,
Anton Blanchard <anton@xxxxxxxxx>,
akpm@xxxxxxxxxxxxxxxxxxxx, torvalds@xxxxxxxxxxxxxxxxxxxx,
stable-review@xxxxxxxxxx, alan@xxxxxxxxxxxxxxxxxxx, Jeff
Kirsher <jeffrey.t.kirsher@xxxxxxxxx>
Subject: Re: [Stable-review] [22/68] ixgbe: prevent
speculative processing of descriptors before ready
Date: Tue, 01 Mar 2011 02:14:33 +0000

> On Mon, 2011-02-28 at 08:22 -0800, Greg KH wrote:
> > 2.6.32-longterm review patch. If anyone has any
> > objections, please let us know.
> > ------------------
> >
> > From: Milton Miller <miltonm@xxxxxxx>
> >
> > commit 3c945e5b3719bcc18c6ddd31bbcae8ef94f3d19a
> > upstream.
> > The PowerPC architecture does not require loads to
> > independent bytes to be ordered without adding an
> > explicit barrier.
> > In ixgbe_clean_rx_irq we 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
> match the TCP/IP header. Since we use hardware
> > 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/