diff options
author | Erik Hugne <erik.hugne@ericsson.com> | 2013-11-06 09:28:05 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-07 18:30:11 -0500 |
commit | 528f6f4bf372511ebf6004eed822de8f749b5930 (patch) | |
tree | 3db1786d51ec6f55d468f1a0e9028b61119ee4ba /net/tipc/link.c | |
parent | b0db7b0c21a014d01be1018db68e78ebf7d4f0d7 (diff) | |
download | linux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.tar.gz linux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.tar.bz2 linux-stable-528f6f4bf372511ebf6004eed822de8f749b5930.zip |
tipc: don't reroute message fragments
When a message fragment is received in a broadcast or unicast link,
the reception code will append the fragment payload to a big reassembly
buffer through a call to the function tipc_recv_fragm(). However, after
the return of that call, the logics goes on and passes the fragment
buffer to the function tipc_net_route_msg(), which will simply drop it.
This behavior is a remnant from the now obsolete multi-cluster
functionality, and has no relevance in the current code base.
Although currently harmless, this unnecessary call would be fatal
after applying the next patch in this series, which introduces
a completely new reassembly algorithm. So we change the code to
eliminate the redundant call.
Signed-off-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index 54163f91b8ae..ada8cadf5af8 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -1657,7 +1657,8 @@ deliver: } if (ret == -1) l_ptr->next_in_no--; - break; + tipc_node_unlock(n_ptr); + continue; case CHANGEOVER_PROTOCOL: type = msg_type(msg); if (link_recv_changeover_msg(&l_ptr, &buf)) { |