Patch "ixgbe: fix crash in build_skb Rx code path" has been added to the 4.15-stable tree
Subsystems (3)
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.15-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.15 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
0c5661ecc5dd7ce296870a3eb7b62b1b280a5e89Mon 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.
--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 ++++++++ 1 file changed, 8 insertions(+)
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +8 -0
@@ -1878,6 +1878,14 @@ static void ixgbe_dma_sync_frag(struct iixgbe_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.15/ixgbe-fix-crash-in-build_skb-rx-code-path.patch