Skip to contentSkip to conversation

Patch "ixgbe: fix crash in build_skb Rx code path" has been added to the 4.14-stable tree

PATCH [email protected] 1 participant 1 message Mar 6, 2018

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ixgbe: fix crash in build_skb Rx code path

to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
ixgbe-fix-crash-in-build_skb-rx-code-path.patch
and it can be found in the queue-4.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 0c5661ecc5dd7ce296870a3eb7b62b1b280a5e89 Mon Sep 17 00:00:00 2001

From: Emil Tantilov <[email protected]>
Date: Fri, 23 Feb 2018 12:39:41 -0800
Subject: ixgbe: fix crash in build_skb Rx code path

From: Emil Tantilov <[email protected]>

commit 0c5661ecc5dd7ce296870a3eb7b62b1b280a5e89 upstream.

Add check for build_skb enabled ring in ixgbe_dma_sync_frag(). In that case &skb_shinfo(skb)->frags[0] may not always be set which can lead to a crash. Instead we derive the page offset from skb->data.

Fixes 42073d91a214 ("ixgbe: Have the CPU take ownership of the buffers sooner")
CC stable <[email protected]>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |    8 ++++++++
 1 file changed, 8 insertions(+)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +8 -0
@@ -1877,6 +1877,14 @@ static void ixgbe_dma_sync_frag(struct i
 				     ixgbe_rx_pg_size(rx_ring),
 				     DMA_FROM_DEVICE,
 				     IXGBE_RX_DMA_ATTR);
+	} else if (ring_uses_build_skb(rx_ring)) {
+		unsigned long offset = (unsigned long)(skb->data) & ~PAGE_MASK;
+
+		dma_sync_single_range_for_cpu(rx_ring->dev,
+					      IXGBE_CB(skb)->dma,
+					      offset,
+					      skb_headlen(skb),
+					      DMA_FROM_DEVICE);
 	} else {
 		struct skb_frag_struct *frag = &skb_shinfo(skb)->frags[0];
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.14/ixgbe-fix-crash-in-build_skb-rx-code-path.patch