aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch')
-rw-r--r--target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch78
1 files changed, 0 insertions, 78 deletions
diff --git a/target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch b/target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch
deleted file mode 100644
index fcabb62f5e..0000000000
--- a/target/linux/layerscape/patches-4.9/001-net-centralize-net_device-min-max-MTU-checking.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 95b8bbff6ecf0692747622af16d917a67313f8cc Mon Sep 17 00:00:00 2001
-From: Jarod Wilson <jarod@redhat.com>
-Date: Fri, 7 Oct 2016 22:04:33 -0400
-Subject: [PATCH] net: centralize net_device min/max MTU checking
-
-While looking into an MTU issue with sfc, I started noticing that almost
-every NIC driver with an ndo_change_mtu function implemented almost
-exactly the same range checks, and in many cases, that was the only
-practical thing their ndo_change_mtu function was doing. Quite a few
-drivers have either 68, 64, 60 or 46 as their minimum MTU value checked,
-and then various sizes from 1500 to 65535 for their maximum MTU value. We
-can remove a whole lot of redundant code here if we simple store min_mtu
-and max_mtu in net_device, and check against those in net/core/dev.c's
-dev_set_mtu().
-
-In theory, there should be zero functional change with this patch, it just
-puts the infrastructure in place. Subsequent patches will attempt to start
-using said infrastructure, with theoretically zero change in
-functionality.
-
-CC: netdev@vger.kernel.org
-Signed-off-by: Jarod Wilson <jarod@redhat.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- include/linux/netdevice.h | 4 ++++
- net/core/dev.c | 13 +++++++++++--
- 2 files changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 780e7171f548..2082b7d02a77 100644
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -1507,6 +1507,8 @@ enum netdev_priv_flags {
- * @if_port: Selectable AUI, TP, ...
- * @dma: DMA channel
- * @mtu: Interface MTU value
-+ * @min_mtu: Interface Minimum MTU value
-+ * @max_mtu: Interface Maximum MTU value
- * @type: Interface hardware type
- * @hard_header_len: Maximum hardware header length.
- * @min_header_len: Minimum hardware header length
-@@ -1728,6 +1730,8 @@ struct net_device {
- unsigned char dma;
-
- unsigned int mtu;
-+ unsigned int min_mtu;
-+ unsigned int max_mtu;
- unsigned short type;
- unsigned short hard_header_len;
- unsigned short min_header_len;
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 2e04fd188081..c7ec56e8659a 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -6524,9 +6524,18 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)
- if (new_mtu == dev->mtu)
- return 0;
-
-- /* MTU must be positive. */
-- if (new_mtu < 0)
-+ /* MTU must be positive, and in range */
-+ if (new_mtu < 0 || new_mtu < dev->min_mtu) {
-+ net_err_ratelimited("%s: Invalid MTU %d requested, hw min %d\n",
-+ dev->name, new_mtu, dev->min_mtu);
- return -EINVAL;
-+ }
-+
-+ if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
-+ net_err_ratelimited("%s: Invalid MTU %d requested, hw max %d\n",
-+ dev->name, new_mtu, dev->min_mtu);
-+ return -EINVAL;
-+ }
-
- if (!netif_device_present(dev))
- return -ENODEV;
---
-2.11.1
-