Blob Blame History Raw
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