Message ID | 20210510025738.4713-1-hoang.h.le@dektech.com.au (mailing list archive) |
---|---|
State | Accepted |
Commit | 3058e01d31bbdbe50e02cafece2b22817a6a0eae |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] tipc: make node link identity publish thread safe | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | fail | 2 blamed authors not CCed: tung.q.nguyen@dektech.com.au lucien.xin@gmail.com; 2 maintainers not CCed: tung.q.nguyen@dektech.com.au lucien.xin@gmail.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 24 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Mon, 10 May 2021 09:57:38 +0700 you wrote: > The using of the node address and node link identity are not thread safe, > meaning that two publications may be published the same values, as result > one of them will get failure because of already existing in the name table. > To avoid this we have to use the node address and node link identity values > from inside the node item's write lock protection. > > Fixes: 50a3499ab853 ("tipc: simplify signature of tipc_namtbl_publish()") > Acked-by: Jon Maloy <jmaloy@redhat.com> > Signed-off-by: Hoang Le <hoang.h.le@dektech.com.au> > > [...] Here is the summary with links: - [net] tipc: make node link identity publish thread safe https://git.kernel.org/netdev/net/c/3058e01d31bb You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/net/tipc/node.c b/net/tipc/node.c index 8217905348f4..81af92954c6c 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -423,18 +423,18 @@ static void tipc_node_write_unlock(struct tipc_node *n) write_unlock_bh(&n->lock); if (flags & TIPC_NOTIFY_NODE_DOWN) - tipc_publ_notify(net, publ_list, n->addr, n->capabilities); + tipc_publ_notify(net, publ_list, sk.node, n->capabilities); if (flags & TIPC_NOTIFY_NODE_UP) - tipc_named_node_up(net, n->addr, n->capabilities); + tipc_named_node_up(net, sk.node, n->capabilities); if (flags & TIPC_NOTIFY_LINK_UP) { - tipc_mon_peer_up(net, n->addr, bearer_id); - tipc_nametbl_publish(net, &ua, &sk, n->link_id); + tipc_mon_peer_up(net, sk.node, bearer_id); + tipc_nametbl_publish(net, &ua, &sk, sk.ref); } if (flags & TIPC_NOTIFY_LINK_DOWN) { - tipc_mon_peer_down(net, n->addr, bearer_id); - tipc_nametbl_withdraw(net, &ua, &sk, n->link_id); + tipc_mon_peer_down(net, sk.node, bearer_id); + tipc_nametbl_withdraw(net, &ua, &sk, sk.ref); } }