diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2015-09-17 19:45:22 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2015-09-17 19:45:38 +0200 |
commit | 13c60d6c3c2989ff18a8964573cf8c5ebc56b57d (patch) | |
tree | aa314e80df2e3bad6223e5fe244905ba090d2d07 /target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch | |
parent | f1fc0a7a49e01b52339a6c2a89efa6144da14461 (diff) |
add 4.1.x patches for mikrotik-rb4xx, finetune mini.config, drivers should go into target/linux/config
Diffstat (limited to 'target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch')
-rw-r--r-- | target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch b/target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch new file mode 100644 index 000000000..4dbac11ee --- /dev/null +++ b/target/mips/mikrotik-rb4xx/patches/4.1.6/0028-ag71xx-workaround-some-link-state-bug.patch @@ -0,0 +1,39 @@ +From 02dc26588275d19a49d47abf2210c41b071cd796 Mon Sep 17 00:00:00 2001 +From: Phil Sutter <phil@nwl.cc> +Date: Sat, 28 Jun 2014 17:07:52 +0200 +Subject: [PATCH] ag71xx: workaround some link state bug + +This happens when routing 100mbit/s traffic with masquerading, link +supposedly drops to 10HD for a few seconds leading to the driver +reinitialising the NIC and therefore causing a throughput drop. Ignoring +those link changes allows for constant bandwidth, therefore this seems +not to be a real problem of the hardware but one of an overreacting +driver. +--- + drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c b/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c +index 9de77e9..a83707e 100644 +--- a/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c ++++ b/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c +@@ -25,7 +25,15 @@ static void ag71xx_phy_link_adjust(struct net_device *dev) + if (phydev->link) { + if (ag->duplex != phydev->duplex + || ag->speed != phydev->speed) { +- status_change = 1; ++ /* Completely ignore speed/duplex changes as long ++ * as the link stays up as they're probably spurious ++ * (the internal link should not change any way). ++ * ++ * This is actually a workaround, as the link seems to ++ * drop to 10HD from 1000FD under routing load when at ++ * least masquerading is also in use. ++ */ ++ //status_change = 1; + } + } + +-- +1.8.5.3 + |