From e0743400d1414323f2c49a481327f6dede70107e Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Fri, 26 May 2017 17:59:12 +0200
Subject: [PATCH 1/3] dpaa2: Manually check MTU limits
Patch-mainline: Never, only needed to make code work with SP3 kernel
References: bsc#1041022
Newer kernels have implicit MTU checks in the network layer. SP3 does not.
This patch adapts the dpaa2 driver to do the MTU checks explicitly.
Signed-off-by: Alexander Graf <agraf@suse.de>
---
drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
index 49c435b..fa6c087 100644
--- a/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
+++ b/drivers/staging/fsl-dpaa2/ethernet/dpaa2-eth.c
@@ -1185,6 +1185,9 @@ static int dpaa2_eth_change_mtu(struct net_device *net_dev, int mtu)
struct dpaa2_eth_priv *priv = netdev_priv(net_dev);
int err;
+ if ((mtu < 68) || (mtu > DPAA2_ETH_MAX_MTU))
+ return -EINVAL;
+
/* Set the maximum Rx frame length to match the transmit side;
* account for L2 headers when computing the MFL
*/
@@ -2215,10 +2218,6 @@ static int netdev_init(struct net_device *net_dev)
*/
net_dev->needed_headroom = DPAA2_ETH_NEEDED_HEADROOM(priv);
- /* Set MTU limits */
- net_dev->min_mtu = 68;
- net_dev->max_mtu = DPAA2_ETH_MAX_MTU;
-
/* Our .ndo_init will be called herein */
err = register_netdev(net_dev);
if (err < 0) {
--
1.8.5.6