ofproto: Fix code that keeps track of MTU.
authorBen Pfaff <blp@nicira.com>
Mon, 12 Mar 2012 19:59:47 +0000 (12:59 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 12 Mar 2012 19:59:47 +0000 (12:59 -0700)
ofport_install() should set the MTU that it finds into the ofport
before calling set_internal_devs_mtu(), because the latter function might
change the MTU and update ofport->mtu and the caller should not incorrectly
overwrite its changes.

Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto.c

index d03bd9b37cdc2c1649ea269fe6f5e4fb5baed331..b660a1bb12cb5e006feb0ca23685a1f61d570492 100644 (file)
@@ -1477,8 +1477,8 @@ ofport_install(struct ofproto *p,
     shash_add(&p->port_by_name, netdev_name, ofport);
 
     if (!netdev_get_mtu(netdev, &dev_mtu)) {
-        set_internal_devs_mtu(p);
         ofport->mtu = dev_mtu;
+        set_internal_devs_mtu(p);
     } else {
         ofport->mtu = 0;
     }