netdev-linux: Skip NETDEV_UP test in netdev_linux_set_etheraddr() for taps.
authorBen Pfaff <blp@nicira.com>
Mon, 13 May 2013 23:39:26 +0000 (16:39 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 13 May 2013 23:43:17 +0000 (16:43 -0700)
netdev_turn_flags_off() does nothing if the flags that one turns off are
already off.

Reported-by: Ethan Jackson <ethan@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Ethan Jackson <ethan@nicira.com>
lib/netdev-linux.c

index b548996..d73115b 100644 (file)
@@ -977,11 +977,7 @@ netdev_linux_set_etheraddr(struct netdev *netdev_,
 
     /* Tap devices must be brought down before setting the address. */
     if (is_tap_netdev(netdev_)) {
-        enum netdev_flags flags;
-
-        if (!netdev_get_flags(netdev_, &flags) && (flags & NETDEV_UP)) {
-            netdev_turn_flags_off(netdev_, NETDEV_UP, &sf);
-        }
+        netdev_turn_flags_off(netdev_, NETDEV_UP, &sf);
     }
     error = set_etheraddr(netdev_get_name(netdev_), mac);
     if (!error || error == ENODEV) {