[ovs-dev] [mii 1/2] netdev: Take responsibility for polling MII registers.

Ethan Jackson ethan at nicira.com
Fri May 20 19:50:20 UTC 2011


Here is an incremental posted for completeness.

Ethan.

---
 lib/netdev-linux.c |    6 +++---
 vswitchd/bridge.c  |    4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 79451c7..b5d3035 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -1134,9 +1134,9 @@ netdev_linux_set_miimon_interval(struct netdev *netdev_,
 
     netdev_dev = netdev_dev_linux_cast(netdev_get_dev(netdev_));
 
-    netdev_dev->miimon_interval = interval;
-    if (netdev_dev->miimon_interval > 0) {
-        netdev_dev->miimon_interval = MAX(interval, 100);
+    interval = interval > 0 ? MAX(interval, 100) : 0;
+    if (netdev_dev->miimon_interval != interval) {
+        netdev_dev->miimon_interval = interval;
         timer_set_expired(&netdev_dev->miimon_timer);
     }
 
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
index c3fb919..cbda078 100644
--- a/vswitchd/bridge.c
+++ b/vswitchd/bridge.c
@@ -528,6 +528,10 @@ port_configure(struct port *port)
     } else {
         s.bond = NULL;
         s.bond_stable_ids = NULL;
+
+        LIST_FOR_EACH(iface, port_elem, &port->ifaces) {
+            netdev_set_miimon_interval(iface->netdev, 0);
+        }
     }
 
     /* Register. */
-- 
1.7.4.4




More information about the dev mailing list