Skip to content

Commit 66039eb

Browse files
norbertx-zulinskianguy11
authored andcommitted
iavf: Fix bad page state
Fix bad page state, free inappropriate page in handling dummy descriptor. iavf_build_skb now has to check not only if rx_buffer is NULL but also if size is zero, same thing in iavf_clean_rx_irq. Without this patch driver would free page that will be used by napi_build_skb. Fixes: a9f49e0 ("iavf: Fix handling of dummy receive descriptors") Signed-off-by: Norbert Zulinski <[email protected]> Signed-off-by: Mateusz Palczewski <[email protected]> Tested-by: Konrad Jankowski <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
1 parent 9662895 commit 66039eb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/net/ethernet/intel/iavf/iavf_txrx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,7 +1393,7 @@ static struct sk_buff *iavf_build_skb(struct iavf_ring *rx_ring,
13931393
#endif
13941394
struct sk_buff *skb;
13951395

1396-
if (!rx_buffer)
1396+
if (!rx_buffer || !size)
13971397
return NULL;
13981398
/* prefetch first cache line of first page */
13991399
va = page_address(rx_buffer->page) + rx_buffer->page_offset;
@@ -1551,7 +1551,7 @@ static int iavf_clean_rx_irq(struct iavf_ring *rx_ring, int budget)
15511551
/* exit if we failed to retrieve a buffer */
15521552
if (!skb) {
15531553
rx_ring->rx_stats.alloc_buff_failed++;
1554-
if (rx_buffer)
1554+
if (rx_buffer && size)
15551555
rx_buffer->pagecnt_bias++;
15561556
break;
15571557
}

0 commit comments

Comments
 (0)