aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ar71xx/files/drivers/net
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-08-10 15:31:38 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-08-10 15:31:38 +0000
commit855c45a8b9e6e11d6c0a3e074c26f121f633e278 (patch)
treee00d5a26a514d5c2892c7aaea957a2a425726641 /target/linux/ar71xx/files/drivers/net
parent73355c36260d61fc0d3b378076640abe60ee9570 (diff)
downloadmaster-187ad058-855c45a8b9e6e11d6c0a3e074c26f121f633e278.tar.gz
master-187ad058-855c45a8b9e6e11d6c0a3e074c26f121f633e278.tar.bz2
master-187ad058-855c45a8b9e6e11d6c0a3e074c26f121f633e278.zip
ar71xx: allow mtu > 1500 based on the configured tx/rx mtu register value
Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37748 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/drivers/net')
-rw-r--r--target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
index 50029ffafe..5913bb6de4 100644
--- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
+++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c
@@ -1042,13 +1042,22 @@ static void ag71xx_netpoll(struct net_device *dev)
}
#endif
+static int ag71xx_change_mtu(struct net_device *dev, int new_mtu)
+{
+ if (new_mtu < 68 ||
+ new_mtu > AG71XX_TX_MTU_LEN - ETH_HLEN - ETH_FCS_LEN)
+ return -EINVAL;
+
+ dev->mtu = new_mtu;
+}
+
static const struct net_device_ops ag71xx_netdev_ops = {
.ndo_open = ag71xx_open,
.ndo_stop = ag71xx_stop,
.ndo_start_xmit = ag71xx_hard_start_xmit,
.ndo_do_ioctl = ag71xx_do_ioctl,
.ndo_tx_timeout = ag71xx_tx_timeout,
- .ndo_change_mtu = eth_change_mtu,
+ .ndo_change_mtu = ag71xx_change_mtu,
.ndo_set_mac_address = eth_mac_addr,
.ndo_validate_addr = eth_validate_addr,
#ifdef CONFIG_NET_POLL_CONTROLLER