diff mbox series

[net] tipc: fix wrong publisher node address in link publications

Message ID 20220214013852.2803940-1-jmaloy@redhat.com (mailing list archive)
State Accepted
Commit 032062f363b4bf02b1d547f329aa5d97b6a17410
Delegated to: Netdev Maintainers
Headers show
Series [net] tipc: fix wrong publisher node address in link publications | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes fail Problems with Fixes tag: 1
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Jon Maloy Feb. 14, 2022, 1:38 a.m. UTC
From: Jon Maloy <jmaloy@redhat.com>

When a link comes up we add its presence to the name table to make it
possible for users to subscribe for link up/down events. However, after
a previous call signature change the binding is wrongly published with
the peer node as publishing node, instead of the own node as it should
be. This has the effect that the command 'tipc name table show' will
list the link binding (service type 2) with node scope and a peer node
as originator, something that obviously is impossible.

We correct this bug here.

Fixes: 50a3499ab853 ("tipc: simplify signature of tipc_namtbl_publish()")

Signed-off-by: Jon Maloy <jmaloy@redhat.com>
---
 net/tipc/node.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

patchwork-bot+netdevbpf@kernel.org Feb. 15, 2022, 5:30 a.m. UTC | #1
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Sun, 13 Feb 2022 20:38:52 -0500 you wrote:
> From: Jon Maloy <jmaloy@redhat.com>
> 
> When a link comes up we add its presence to the name table to make it
> possible for users to subscribe for link up/down events. However, after
> a previous call signature change the binding is wrongly published with
> the peer node as publishing node, instead of the own node as it should
> be. This has the effect that the command 'tipc name table show' will
> list the link binding (service type 2) with node scope and a peer node
> as originator, something that obviously is impossible.
> 
> [...]

Here is the summary with links:
  - [net] tipc: fix wrong publisher node address in link publications
    https://git.kernel.org/netdev/net/c/032062f363b4

You are awesome, thank you!
Hoang Huu Le Feb. 15, 2022, 8:16 a.m. UTC | #2
Hi Jon,

It seems this fix caused a problem with user type service as its always treated as node scope.
The sending side does not know a service binding on peer node as it looks up on itself node address.

Regards,
Hoang
> -----Original Message-----
> From: jmaloy@redhat.com <jmaloy@redhat.com>
> Sent: Monday, February 14, 2022 8:39 AM
> To: netdev@vger.kernel.org; davem@davemloft.net
> Cc: kuba@kernel.org; tipc-discussion@lists.sourceforge.net; Tung Quang Nguyen <tung.q.nguyen@dektech.com.au>; Hoang Huu Le
> <hoang.h.le@dektech.com.au>; Tuong Tong Lien <tuong.t.lien@dektech.com.au>; jmaloy@redhat.com; maloy@donjonn.com;
> xinl@redhat.com; ying.xue@windriver.com; parthasarathy.bhuvaragan@gmail.com
> Subject: [net] tipc: fix wrong publisher node address in link publications
> 
> From: Jon Maloy <jmaloy@redhat.com>
> 
> When a link comes up we add its presence to the name table to make it
> possible for users to subscribe for link up/down events. However, after
> a previous call signature change the binding is wrongly published with
> the peer node as publishing node, instead of the own node as it should
> be. This has the effect that the command 'tipc name table show' will
> list the link binding (service type 2) with node scope and a peer node
> as originator, something that obviously is impossible.
> 
> We correct this bug here.
> 
> Fixes: 50a3499ab853 ("tipc: simplify signature of tipc_namtbl_publish()")
> 
> Signed-off-by: Jon Maloy <jmaloy@redhat.com>
> ---
>  net/tipc/node.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/tipc/node.c b/net/tipc/node.c
> index 9947b7dfe1d2..fd95df338da7 100644
> --- a/net/tipc/node.c
> +++ b/net/tipc/node.c
> @@ -413,7 +413,7 @@ static void tipc_node_write_unlock(struct tipc_node *n)
>  	tipc_uaddr(&ua, TIPC_SERVICE_RANGE, TIPC_NODE_SCOPE,
>  		   TIPC_LINK_STATE, n->addr, n->addr);
>  	sk.ref = n->link_id;
> -	sk.node = n->addr;
> +	sk.node = tipc_own_addr(net);
>  	bearer_id = n->link_id & 0xffff;
>  	publ_list = &n->publ_list;
> 
> --
> 2.31.1
diff mbox series

Patch

diff --git a/net/tipc/node.c b/net/tipc/node.c
index 9947b7dfe1d2..fd95df338da7 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -413,7 +413,7 @@  static void tipc_node_write_unlock(struct tipc_node *n)
 	tipc_uaddr(&ua, TIPC_SERVICE_RANGE, TIPC_NODE_SCOPE,
 		   TIPC_LINK_STATE, n->addr, n->addr);
 	sk.ref = n->link_id;
-	sk.node = n->addr;
+	sk.node = tipc_own_addr(net);
 	bearer_id = n->link_id & 0xffff;
 	publ_list = &n->publ_list;