aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Stephens <allan.stephens@windriver.com>2012-04-18 09:27:22 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2012-04-19 15:46:48 -0400
commit8a55fe74b1a767cb00d6248a847068c9d886d710 (patch)
tree49590d5adbc9a7cd733da667f089875a4e066426
parentb8f683d126c1cb757e794d6d904cbe7cf5954797 (diff)
tipc: handle <0.0.0> as an alias for this node on outgoing msgs
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>
-rw-r--r--net/tipc/port.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/tipc/port.c b/net/tipc/port.c
index dc7f916b2e10..c50819bc109a 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,
1217 p_ptr->congested = 1; 1217 p_ptr->congested = 1;
1218 if (!tipc_port_congested(p_ptr)) { 1218 if (!tipc_port_congested(p_ptr)) {
1219 destnode = port_peernode(p_ptr); 1219 destnode = port_peernode(p_ptr);
1220 if (likely(destnode != tipc_own_addr)) 1220 if (likely(!in_own_node(destnode)))
1221 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect, 1221 res = tipc_link_send_sections_fast(p_ptr, msg_sect, num_sect,
1222 total_len, destnode); 1222 total_len, destnode);
1223 else 1223 else
@@ -1267,7 +1267,7 @@ int tipc_send2name(u32 ref, struct tipc_name const *name, unsigned int domain,
1267 msg_set_destport(msg, destport); 1267 msg_set_destport(msg, destport);
1268 1268
1269 if (likely(destport || destnode)) { 1269 if (likely(destport || destnode)) {
1270 if (likely(destnode == tipc_own_addr)) 1270 if (likely(in_own_node(destnode)))
1271 res = tipc_port_recv_sections(p_ptr, num_sect, 1271 res = tipc_port_recv_sections(p_ptr, num_sect,
1272 msg_sect, total_len); 1272 msg_sect, total_len);
1273 else if (tipc_own_addr) 1273 else if (tipc_own_addr)
@@ -1315,7 +1315,7 @@ int tipc_send2port(u32 ref, struct tipc_portid const *dest,
1315 msg_set_destport(msg, dest->ref); 1315 msg_set_destport(msg, dest->ref);
1316 msg_set_hdr_sz(msg, BASIC_H_SIZE); 1316 msg_set_hdr_sz(msg, BASIC_H_SIZE);
1317 1317
1318 if (dest->node == tipc_own_addr) 1318 if (in_own_node(dest->node))
1319 res = tipc_port_recv_sections(p_ptr, num_sect, msg_sect, 1319 res = tipc_port_recv_sections(p_ptr, num_sect, msg_sect,
1320 total_len); 1320 total_len);
1321 else if (tipc_own_addr) 1321 else if (tipc_own_addr)
@@ -1362,7 +1362,7 @@ int tipc_send_buf2port(u32 ref, struct tipc_portid const *dest,
1362 skb_push(buf, BASIC_H_SIZE); 1362 skb_push(buf, BASIC_H_SIZE);
1363 skb_copy_to_linear_data(buf, msg, BASIC_H_SIZE); 1363 skb_copy_to_linear_data(buf, msg, BASIC_H_SIZE);
1364 1364
1365 if (dest->node == tipc_own_addr) 1365 if (in_own_node(dest->node))
1366 res = tipc_port_recv_msg(buf); 1366 res = tipc_port_recv_msg(buf);
1367 else 1367 else
1368 res = tipc_send_buf_fast(buf, dest->node); 1368 res = tipc_send_buf_fast(buf, dest->node);