Patchwork [net-next,14/16] tipc: handle <0.0.0> as an alias for this node on outgoing msgs

login
register
mail settings
Submitter Paul Gortmaker
Date April 20, 2012, 9:05 p.m.
Message ID <1334955924-907-15-git-send-email-paul.gortmaker@windriver.com>
Download mbox | patch
Permalink /patch/154158/
State Accepted
Delegated to: David Miller
Headers show

Comments

Paul Gortmaker - April 20, 2012, 9:05 p.m.
From: Allan Stephens <allan.stephens@windriver.com>

Revises handling of send routines for payload messages to ensure that
they are processed properly even if the node's network address is
changed in mid-operation. The routines now treat the default node
address of <0.0.0> as an alias for "this node" when determining where
to send an outgoing message.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 net/tipc/port.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Patch

diff --git a/net/tipc/port.c b/net/tipc/port.c
index dc7f916..c50819b 100644
--- a/net/tipc/port.c
+++ b/net/tipc/port.c
@@ -1217,7 +1217,7 @@  int tipc_send(u32 ref, unsigned int num_sect, struct iovec const *msg_sect,
 	p_ptr->congested = 1;
 	if (!tipc_port_congested(p_ptr)) {
 		destnode = port_peernode(p_ptr);
-		if (likely(destnode != tipc_own_addr))
+		if (likely(!in_own_node(destnode)))
 			res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
 							   total_len, destnode);
 		else
@@ -1267,7 +1267,7 @@  int tipc_send2name(u32 ref, struct tipc_name const *name, unsigned int domain,
 	msg_set_destport(msg, destport);
 
 	if (likely(destport || destnode)) {
-		if (likely(destnode == tipc_own_addr))
+		if (likely(in_own_node(destnode)))
 			res = tipc_port_recv_sections(p_ptr, num_sect,
 						      msg_sect, total_len);
 		else if (tipc_own_addr)
@@ -1315,7 +1315,7 @@  int tipc_send2port(u32 ref, struct tipc_portid const *dest,
 	msg_set_destport(msg, dest->ref);
 	msg_set_hdr_sz(msg, BASIC_H_SIZE);
 
-	if (dest->node == tipc_own_addr)
+	if (in_own_node(dest->node))
 		res =  tipc_port_recv_sections(p_ptr, num_sect, msg_sect,
 					       total_len);
 	else if (tipc_own_addr)
@@ -1362,7 +1362,7 @@  int tipc_send_buf2port(u32 ref, struct tipc_portid const *dest,
 	skb_push(buf, BASIC_H_SIZE);
 	skb_copy_to_linear_data(buf, msg, BASIC_H_SIZE);
 
-	if (dest->node == tipc_own_addr)
+	if (in_own_node(dest->node))
 		res = tipc_port_recv_msg(buf);
 	else
 		res = tipc_send_buf_fast(buf, dest->node);