diff options
Diffstat (limited to 'net/tipc/port.c')
-rw-r--r-- | net/tipc/port.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/net/tipc/port.c b/net/tipc/port.c index 93014f9bc95f..2e0cff408ff9 100644 --- a/net/tipc/port.c +++ b/net/tipc/port.c | |||
@@ -448,13 +448,15 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err) | |||
448 | msg_set_errcode(rmsg, err); | 448 | msg_set_errcode(rmsg, err); |
449 | msg_set_destport(rmsg, msg_origport(msg)); | 449 | msg_set_destport(rmsg, msg_origport(msg)); |
450 | msg_set_origport(rmsg, msg_destport(msg)); | 450 | msg_set_origport(rmsg, msg_destport(msg)); |
451 | if (msg_short(msg)) | 451 | if (msg_short(msg)) { |
452 | msg_set_orignode(rmsg, tipc_own_addr); | 452 | msg_set_orignode(rmsg, tipc_own_addr); |
453 | else | 453 | /* leave name type & instance as zeroes */ |
454 | } else { | ||
454 | msg_set_orignode(rmsg, msg_destnode(msg)); | 455 | msg_set_orignode(rmsg, msg_destnode(msg)); |
456 | msg_set_nametype(rmsg, msg_nametype(msg)); | ||
457 | msg_set_nameinst(rmsg, msg_nameinst(msg)); | ||
458 | } | ||
455 | msg_set_size(rmsg, data_sz + hdr_sz); | 459 | msg_set_size(rmsg, data_sz + hdr_sz); |
456 | msg_set_nametype(rmsg, msg_nametype(msg)); | ||
457 | msg_set_nameinst(rmsg, msg_nameinst(msg)); | ||
458 | skb_copy_to_linear_data_offset(rbuf, hdr_sz, msg_data(msg), data_sz); | 460 | skb_copy_to_linear_data_offset(rbuf, hdr_sz, msg_data(msg), data_sz); |
459 | 461 | ||
460 | /* send self-abort message when rejecting on a connected port */ | 462 | /* send self-abort message when rejecting on a connected port */ |