mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
tipc: move linearization of buffers to generic code
commitc7cad0d6f7upstream. In commit5cbb28a4bf("tipc: linearize arriving NAME_DISTR and LINK_PROTO buffers") we added linearization of NAME_DISTRIBUTOR, LINK_PROTOCOL/RESET and LINK_PROTOCOL/ACTIVATE to the function tipc_udp_recv(). The location of the change was selected in order to make the commit easily appliable to 'net' and 'stable'. We now move this linearization to where it should be done, in the functions tipc_named_rcv() and tipc_link_proto_rcv() respectively. Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Juerg Haefliger <juerg.haefliger@hpe.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
8e81d6b8c1
commit
e70bb22b8f
@@ -1262,6 +1262,8 @@ static int tipc_link_proto_rcv(struct tipc_link *l, struct sk_buff *skb,
|
||||
/* fall thru' */
|
||||
|
||||
case ACTIVATE_MSG:
|
||||
skb_linearize(skb);
|
||||
hdr = buf_msg(skb);
|
||||
|
||||
/* Complete own link name with peer's interface name */
|
||||
if_name = strrchr(l->name, ':') + 1;
|
||||
|
||||
@@ -397,6 +397,7 @@ void tipc_named_rcv(struct net *net, struct sk_buff_head *inputq)
|
||||
|
||||
spin_lock_bh(&tn->nametbl_lock);
|
||||
for (skb = skb_dequeue(inputq); skb; skb = skb_dequeue(inputq)) {
|
||||
skb_linearize(skb);
|
||||
msg = buf_msg(skb);
|
||||
mtype = msg_type(msg);
|
||||
item = (struct distr_item *)msg_data(msg);
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
#include <linux/tipc_netlink.h>
|
||||
#include "core.h"
|
||||
#include "bearer.h"
|
||||
#include "msg.h"
|
||||
|
||||
/* IANA assigned UDP port */
|
||||
#define UDP_PORT_DEFAULT 6118
|
||||
@@ -224,10 +223,6 @@ static int tipc_udp_recv(struct sock *sk, struct sk_buff *skb)
|
||||
{
|
||||
struct udp_bearer *ub;
|
||||
struct tipc_bearer *b;
|
||||
int usr = msg_user(buf_msg(skb));
|
||||
|
||||
if ((usr == LINK_PROTOCOL) || (usr == NAME_DISTRIBUTOR))
|
||||
skb_linearize(skb);
|
||||
|
||||
ub = rcu_dereference_sk_user_data(sk);
|
||||
if (!ub) {
|
||||
|
||||
Reference in New Issue
Block a user