From b2821d386fb92f432b41d42258576eec595653f6 Mon Sep 17 00:00:00 2001 From: Ioana Radulescu Date: Thu, 15 Jun 2017 18:19:11 +0300 Subject: staging: fsl-dpaa2/eth: Fix NULL pointer access If build_frag_skb() fails, we risk accessing the skb pointer before checking it's not NULL. Signed-off-by: Ioana Radulescu diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c index 6b5b2be..abfc908 100644 --- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c +++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c @@ -256,10 +256,6 @@ static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv, break; case dpaa2_fd_sg: skb = build_frag_skb(priv, ch, buf_data); - - /* prefetch newly built skb data */ - prefetch(skb->data); - put_page(virt_to_head_page(vaddr)); percpu_extras->rx_sg_frames++; percpu_extras->rx_sg_bytes += dpaa2_fd_get_len(fd); @@ -272,6 +268,8 @@ static void dpaa2_eth_rx(struct dpaa2_eth_priv *priv, if (unlikely(!skb)) goto err_build_skb; + prefetch(skb->data); + /* Get the timestamp value */ if (priv->ts_rx_en) { struct skb_shared_hwtstamps *shhwtstamps = skb_hwtstamps(skb); -- cgit v0.10.2