[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