Merge remote-tracking branch 'ovs-dev/master'
[sliver-openvswitch.git] / lib / netdev-dummy.c
index a940df8..c4f58b7 100644 (file)
@@ -241,9 +241,11 @@ static int
 netdev_dummy_create(const struct netdev_class *class, const char *name,
                     struct netdev **netdevp)
 {
-    static unsigned int n = 0xaa550000;
+    static atomic_uint next_n = ATOMIC_VAR_INIT(0xaa550000);
     struct netdev_dummy *netdev;
+    unsigned int n;
 
+    atomic_add(&next_n, 1, &n);
     netdev = xzalloc(sizeof *netdev);
     netdev_init(&netdev->up, name, class);
     netdev->hwaddr[0] = 0xaa;
@@ -265,8 +267,6 @@ netdev_dummy_create(const struct netdev_class *class, const char *name,
 
     shash_add(&dummy_netdevs, name, netdev);
 
-    n++;
-
     *netdevp = &netdev->up;
 
     return 0;