aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/nes/nes_cm.c
diff options
context:
space:
mode:
authorFaisal Latif <faisal.latif@intel.com>2010-02-12 14:55:03 -0500
committerRoland Dreier <rolandd@cisco.com>2010-02-19 14:38:14 -0500
commit6e10d2e407542605b2bdca43dc88c35fa8bd24b2 (patch)
treec79261a233ea24d7b3cee6fb011a6b8f5243a8e4 /drivers/infiniband/hw/nes/nes_cm.c
parent676ad585531e965416fd958747894541dabcec96 (diff)
RDMA/nes: Use atomic counters for CM listener create and destroy
After running long iterative MPI tests, sometimes ethtool reports a "CM Destroy Listener" count more than the "CM Create Listener" count. This inconsistency is fixed by making counter variables atomic. Signed-off-by: Faisal Latif <faisal.latif@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/nes/nes_cm.c')
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 39468c277036..debd92c53d89 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -67,8 +67,8 @@ u32 cm_packets_dropped;
67u32 cm_packets_retrans; 67u32 cm_packets_retrans;
68u32 cm_packets_created; 68u32 cm_packets_created;
69u32 cm_packets_received; 69u32 cm_packets_received;
70u32 cm_listens_created; 70atomic_t cm_listens_created;
71u32 cm_listens_destroyed; 71atomic_t cm_listens_destroyed;
72u32 cm_backlog_drops; 72u32 cm_backlog_drops;
73atomic_t cm_loopbacks; 73atomic_t cm_loopbacks;
74atomic_t cm_nodes_created; 74atomic_t cm_nodes_created;
@@ -1042,7 +1042,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
1042 kfree(listener); 1042 kfree(listener);
1043 listener = NULL; 1043 listener = NULL;
1044 ret = 0; 1044 ret = 0;
1045 cm_listens_destroyed++; 1045 atomic_inc(&cm_listens_destroyed);
1046 } else { 1046 } else {
1047 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); 1047 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
1048 } 1048 }
@@ -3172,7 +3172,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
3172 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node); 3172 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
3173 return err; 3173 return err;
3174 } 3174 }
3175 cm_listens_created++; 3175 atomic_inc(&cm_listens_created);
3176 } 3176 }
3177 3177
3178 cm_id->add_ref(cm_id); 3178 cm_id->add_ref(cm_id);