compat: backport eth_change_mtu and eth_validate_addr
authorHauke Mehrtens <hauke@hauke-m.de>
Wed, 5 May 2010 22:27:37 +0000 (00:27 +0200)
committerLuis R. Rodriguez <lrodriguez@atheros.com>
Thu, 6 May 2010 00:41:14 +0000 (17:41 -0700)
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
compat/compat-2.6.29.c
include/linux/compat-2.6.29.h

index 5ee1e44..8c725ee 100644 (file)
@@ -98,6 +98,32 @@ int eth_mac_addr(struct net_device *dev, void *p)
        return 0;
 }
 EXPORT_SYMBOL(eth_mac_addr);
+
+/**
+ * eth_change_mtu - set new MTU size
+ * @dev: network device
+ * @new_mtu: new Maximum Transfer Unit
+ *
+ * Allow changing MTU size. Needs to be overridden for devices
+ * supporting jumbo frames.
+ */
+int eth_change_mtu(struct net_device *dev, int new_mtu)
+{
+       if (new_mtu < 68 || new_mtu > ETH_DATA_LEN)
+               return -EINVAL;
+       dev->mtu = new_mtu;
+       return 0;
+}
+EXPORT_SYMBOL(eth_change_mtu);
+
+int eth_validate_addr(struct net_device *dev)
+{
+       if (!is_valid_ether_addr(dev->dev_addr))
+               return -EADDRNOTAVAIL;
+
+       return 0;
+}
+EXPORT_SYMBOL(eth_validate_addr);
 /* Source: net/ethernet/eth.c */
 
 
index 165b78c..f063e24 100644 (file)
@@ -246,6 +246,8 @@ extern void usb_unpoison_anchored_urbs(struct usb_anchor *anchor);
 )
 
 extern int eth_mac_addr(struct net_device *dev, void *p);
+extern int eth_change_mtu(struct net_device *dev, int new_mtu);
+extern int eth_validate_addr(struct net_device *dev);
 
 #else