The real bug is that bottom_half is unbalanced because we lock with
spin_lock(&node->lock) but tipc_node_unlock() which calls
spin_unlock_bh().

regards,
dan carpenter

---

Hi Jon,

FYI, there are new smatch warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master
head:   d4f2fa6ad61ec1db713569a179183df4d0fc6ae7
commit: e099e86c9e24fe9aff36773600543eb31d8954d1 [98/108] tipc: add node_lock 
protection to link lookup function

net/tipc/link.c:2616 tipc_link_cmd_reset_stats() warn: inconsistent returns 
spin_lock:&node->lock: locked (2611 [s32min-s32max], 2616 [s32min-s32max]) 
unlocked (2592 [s32min-s32max], 2597 [s32min-s32max], 2598 [s32min-s32max], 
2604 [s32min-s32max])

git remote add net-next 
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
git remote update net-next
git checkout e099e86c9e24fe9aff36773600543eb31d8954d1
vim +2616 net/tipc/link.c

4323add6 Per Liden      2006-01-18  2600        read_lock_bh(&tipc_net_lock);
e099e86c Jon Paul Maloy 2014-02-13  2601        node = 
tipc_link_find_owner(link_name, &bearer_id);
e099e86c Jon Paul Maloy 2014-02-13  2602        if (!node) {
e099e86c Jon Paul Maloy 2014-02-13  2603                
read_unlock_bh(&tipc_net_lock);
e099e86c Jon Paul Maloy 2014-02-13  2604                return 
tipc_cfg_reply_error_string("link not found");
e099e86c Jon Paul Maloy 2014-02-13  2605        }
e099e86c Jon Paul Maloy 2014-02-13  2606        spin_lock(&node->lock);
e099e86c Jon Paul Maloy 2014-02-13  2607        l_ptr = node->links[bearer_id];
b97bf3fd Per Liden      2006-01-02  2608        if (!l_ptr) {
e099e86c Jon Paul Maloy 2014-02-13  2609                tipc_node_unlock(node);
4323add6 Per Liden      2006-01-18  2610                
read_unlock_bh(&tipc_net_lock);
4323add6 Per Liden      2006-01-18  2611                return 
tipc_cfg_reply_error_string("link not found");
b97bf3fd Per Liden      2006-01-02  2612        }
b97bf3fd Per Liden      2006-01-02  2613        link_reset_statistics(l_ptr);
4323add6 Per Liden      2006-01-18  2614        tipc_node_unlock(node);
4323add6 Per Liden      2006-01-18  2615        read_unlock_bh(&tipc_net_lock);
4323add6 Per Liden      2006-01-18 @2616        return tipc_cfg_reply_none();
b97bf3fd Per Liden      2006-01-02  2617  }
b97bf3fd Per Liden      2006-01-02  2618  
b97bf3fd Per Liden      2006-01-02  2619  /**
b97bf3fd Per Liden      2006-01-02  2620   * percent - convert count to a 
percentage of total (rounding up or down)
b97bf3fd Per Liden      2006-01-02  2621   */
b97bf3fd Per Liden      2006-01-02  2622  static u32 percent(u32 count, u32 
total)
b97bf3fd Per Liden      2006-01-02  2623  {
b97bf3fd Per Liden      2006-01-02  2624        return (count * 100 + (total / 
2)) / total;

---
0-DAY kernel build testing backend              Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to