|
@@ -37,7 +37,7 @@ static int __hw_addr_create_ex(struct netdev_hw_addr_list *list,
|
|
|
ha->type = addr_type;
|
|
|
ha->refcount = 1;
|
|
|
ha->global_use = global;
|
|
|
- ha->synced = false;
|
|
|
+ ha->synced = 0;
|
|
|
list_add_tail_rcu(&ha->list, &list->list);
|
|
|
list->count++;
|
|
|
|
|
@@ -165,7 +165,7 @@ int __hw_addr_sync(struct netdev_hw_addr_list *to_list,
|
|
|
addr_len, ha->type);
|
|
|
if (err)
|
|
|
break;
|
|
|
- ha->synced = true;
|
|
|
+ ha->synced++;
|
|
|
ha->refcount++;
|
|
|
} else if (ha->refcount == 1) {
|
|
|
__hw_addr_del(to_list, ha->addr, addr_len, ha->type);
|
|
@@ -186,7 +186,7 @@ void __hw_addr_unsync(struct netdev_hw_addr_list *to_list,
|
|
|
if (ha->synced) {
|
|
|
__hw_addr_del(to_list, ha->addr,
|
|
|
addr_len, ha->type);
|
|
|
- ha->synced = false;
|
|
|
+ ha->synced--;
|
|
|
__hw_addr_del(from_list, ha->addr,
|
|
|
addr_len, ha->type);
|
|
|
}
|