[Intel-wired-lan] [PATCH v2 1/7] ixgbe: Fix skb list corruption on Power systems

Bowers, AndrewX andrewx.bowers at intel.com
Tue Nov 21 19:47:56 UTC 2017


> -----Original Message-----
> From: Intel-wired-lan [mailto:intel-wired-lan-bounces at osuosl.org] On
> Behalf Of Brian King
> Sent: Friday, November 17, 2017 9:06 AM
> Cc: muvic at linux.vnet.ibm.com; stable at vger.kernel.org; intel-wired-
> lan at lists.osuosl.org; brking at pobox.com
> Subject: [Intel-wired-lan] [PATCH v2 1/7] ixgbe: Fix skb list corruption on
> Power systems
> 
> This patch fixes an issue seen on Power systems with ixgbe which results in
> skb list corruption and an eventual kernel oops. The following is what was
> observed:
> 
> CPU 1                                   CPU2
> ============================
> ============================
> 1: ixgbe_xmit_frame_ring                ixgbe_clean_tx_irq
> 2:  first->skb = skb                     eop_desc = tx_buffer->next_to_watch
> 3:  ixgbe_tx_map                         read_barrier_depends()
> 4:   wmb                                 check adapter written status bit
> 5:   first->next_to_watch = tx_desc      napi_consume_skb(tx_buffer->skb ..);
> 6:   writel(i, tx_ring->tail);
> 
> The read_barrier_depends is insufficient to ensure that tx_buffer->skb does
> not get loaded prior to tx_buffer->next_to_watch, which then results in
> loading a stale skb pointer. This patch replaces the read_barrier_depends
> with smp_rmb to ensure loads are ordered with respect to the load of
> tx_buffer->next_to_watch.
> 
> Cc: stable<stable at vger.kernel.org>
> Signed-off-by: Brian King <brking at linux.vnet.ibm.com>
> ---
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Tested-by: Andrew Bowers <andrewx.bowers at intel.com>




More information about the Intel-wired-lan mailing list