aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/link.c
diff options
context:
space:
mode:
authorJon Paul Maloy <jon.maloy@ericsson.com>2014-02-14 16:40:44 -0500
committerDavid S. Miller <davem@davemloft.net>2014-02-17 00:26:34 -0500
commita11607f5a145818e097c64c72c839bcf6907e110 (patch)
tree2ecb1489a066f5010de35befe3a0f3ff0a3c80b3 /net/tipc/link.c
parent074bb43e9e594bec647ec45cc5bbc8c1ac2306aa (diff)
tipc: correct usage of spin_lock() vs spin_lock_bh()
I commit e099e86c9e24fe9aff36773600543eb31d8954d ("tipc: add node_lock protection to link lookup function") we are calling spin_lock(&node->lock) directly instead of indirectly via the tipc_node_lock(node) function. However, tipc_node_lock() is using spin_lock_bh(), not spin_lock(), something leading to unbalanced usage in one place, and a smatch warning. We fix this by consistently using tipc_node_lock()/unlock() in in the places touched by the mentioned commit. Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r--net/tipc/link.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 4fb4ae0a75ed..5422e96014e2 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -2410,7 +2410,7 @@ static struct tipc_node *tipc_link_find_owner(const char *link_name,
2410 2410
2411 *bearer_id = 0; 2411 *bearer_id = 0;
2412 list_for_each_entry_safe(n_ptr, tmp_n_ptr, &tipc_node_list, list) { 2412 list_for_each_entry_safe(n_ptr, tmp_n_ptr, &tipc_node_list, list) {
2413 spin_lock(&n_ptr->lock); 2413 tipc_node_lock(n_ptr);
2414 for (i = 0; i < MAX_BEARERS; i++) { 2414 for (i = 0; i < MAX_BEARERS; i++) {
2415 l_ptr = n_ptr->links[i]; 2415 l_ptr = n_ptr->links[i];
2416 if (l_ptr && !strcmp(l_ptr->name, link_name)) { 2416 if (l_ptr && !strcmp(l_ptr->name, link_name)) {
@@ -2419,7 +2419,7 @@ static struct tipc_node *tipc_link_find_owner(const char *link_name,
2419 break; 2419 break;
2420 } 2420 }
2421 } 2421 }
2422 spin_unlock(&n_ptr->lock); 2422 tipc_node_unlock(n_ptr);
2423 if (found_node) 2423 if (found_node)
2424 break; 2424 break;
2425 } 2425 }
@@ -2603,7 +2603,7 @@ struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area, int req_tlv_
2603 read_unlock_bh(&tipc_net_lock); 2603 read_unlock_bh(&tipc_net_lock);
2604 return tipc_cfg_reply_error_string("link not found"); 2604 return tipc_cfg_reply_error_string("link not found");
2605 } 2605 }
2606 spin_lock(&node->lock); 2606 tipc_node_lock(node);
2607 l_ptr = node->links[bearer_id]; 2607 l_ptr = node->links[bearer_id];
2608 if (!l_ptr) { 2608 if (!l_ptr) {
2609 tipc_node_unlock(node); 2609 tipc_node_unlock(node);