* Global variables
*/
static u32 bnad_rxqs_per_cq = 2;
-static u32 bna_id;
+static atomic_t bna_id;
static struct mutex bnad_list_mutex;
-static LIST_HEAD(bnad_list);
static const u8 bnad_bcast_addr[] __aligned(2) =
{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
bnad_add_to_list(struct bnad *bnad)
{
mutex_lock(&bnad_list_mutex);
- list_add_tail(&bnad->list_entry, &bnad_list);
- bnad->id = bna_id++;
mutex_unlock(&bnad_list_mutex);
}
bnad_remove_from_list(struct bnad *bnad)
{
mutex_lock(&bnad_list_mutex);
- list_del(&bnad->list_entry);
mutex_unlock(&bnad_list_mutex);
}
bnad = netdev_priv(netdev);
bnad_lock_init(bnad);
bnad_add_to_list(bnad);
+ bnad->id = atomic_inc_return(&bna_id) - 1;
mutex_lock(&bnad->conf_mutex);
/*