diff options
author | Ivan Vecera <ivecera@redhat.com> | 2016-07-29 17:52:57 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-08 22:41:27 (GMT) |
commit | 285eb9c37281c8c34bd604346a48d6627db51007 (patch) | |
tree | 00f7f6e43b5ba9cc8496614373c3170a00e123ef /drivers | |
parent | a1f4064b1aa34b8176bda36946bbb4a5ceeb4ce7 (diff) | |
download | linux-285eb9c37281c8c34bd604346a48d6627db51007.tar.xz |
bna: change type of bna_id to atomic_t
Change type of bna_id to atomic_t. The bnad_list_mutex is used to prevent
a race when bna_id is incremented. After the change the mutex can be
removed in the next step.
Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/brocade/bna/bnad.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c index 696bbae..2bed050 100644 --- a/drivers/net/ethernet/brocade/bna/bnad.c +++ b/drivers/net/ethernet/brocade/bna/bnad.c @@ -54,7 +54,7 @@ MODULE_PARM_DESC(bna_debugfs_enable, "Enables debugfs feature, default=1," * 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 const u8 bnad_bcast_addr[] __aligned(2) = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; @@ -79,7 +79,6 @@ static void bnad_add_to_list(struct bnad *bnad) { mutex_lock(&bnad_list_mutex); - bnad->id = bna_id++; mutex_unlock(&bnad_list_mutex); } @@ -3651,6 +3650,7 @@ bnad_pci_probe(struct pci_dev *pdev, 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); /* |