summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorIoana Radulescu <ruxandra.radulescu@nxp.com>2017-06-15 15:19:11 (GMT)
committerXie Xiaobo <xiaobo.xie@nxp.com>2017-09-25 07:25:37 (GMT)
commitb2821d386fb92f432b41d42258576eec595653f6 (patch)
tree53863a69cdc203e6edbb5548b01f9d44a08bebae /drivers
parent182f1498cc9401dae8674111a34a5adda4b2d813 (diff)
downloadlinux-b2821d386fb92f432b41d42258576eec595653f6.tar.xz
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 <ruxandra.radulescu@nxp.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c6
1 files changed, 2 insertions, 4 deletions
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);