aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/fsl-dpaa2/ethernet
diff options
context:
space:
mode:
authorIoana Radulescu <ruxandra.radulescu@nxp.com>2017-10-11 08:29:45 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-10-18 16:45:18 +0200
commitb63baf7137688ff7989829137dab8fd548fa9399 (patch)
tree643e3d0018b4eaedadfa3fab117c811ecd8bd8fa /drivers/staging/fsl-dpaa2/ethernet
parentstaging: fsl-dpaa2/eth: Account for Rx FD buffers on error path (diff)
downloadlinux-dev-b63baf7137688ff7989829137dab8fd548fa9399.tar.xz
linux-dev-b63baf7137688ff7989829137dab8fd548fa9399.zip
staging: fsl-dpaa2/eth: Check SGT final bit is present
For scatter-gather ingress frames, we expect to receive a list of fragments from the hardware, last of which is marked with a "final" bit. Add a check to make sure the Rx frame has this bit set correctly; there's not much we can do in case of a malformed frame, but at least issue a warning. Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/fsl-dpaa2/ethernet')
-rw-r--r--drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
index e9fe1c9da347..6f009d1e3a84 100644
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
+++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
@@ -213,6 +213,8 @@ static struct sk_buff *build_frag_skb(struct dpaa2_eth_priv *priv,
break;
}
+ WARN_ONCE(i == DPAA2_ETH_MAX_SG_ENTRIES, "Final bit not set in SGT");
+
/* Count all data buffers + SG table buffer */
ch->buf_count -= i + 2;