summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Hugne <erik.hugne@ericsson.com>2015-03-05 12:23:48 +0300
committerDavid S. Miller <davem@davemloft.net>2015-03-06 06:08:42 +0300
commit948fa2d115c553ae32aced66e0f00f89245dc05e (patch)
tree7c4810c9fea6c82765f0b779962ffbe6858dfd0b
parent33f8b9ecdb15bc8a3c6be0072a7e0f7a345856f1 (diff)
downloadlinux-948fa2d115c553ae32aced66e0f00f89245dc05e.tar.xz
tipc: increase size of tipc discovery messages
The payload area following the TIPC discovery message header is an opaque area defined by the media. INT_H_SIZE was enough for Ethernet/IB/IPv4 but needs to be expanded to carry IPv6 addressing information. Signed-off-by: Erik Hugne <erik.hugne@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/tipc/discover.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c
index feef3753615d..5967506833ce 100644
--- a/net/tipc/discover.c
+++ b/net/tipc/discover.c
@@ -86,7 +86,7 @@ static void tipc_disc_init_msg(struct net *net, struct sk_buff *buf, u32 type,
msg = buf_msg(buf);
tipc_msg_init(tn->own_addr, msg, LINK_CONFIG, type,
- INT_H_SIZE, dest_domain);
+ MAX_H_SIZE, dest_domain);
msg_set_non_seq(msg, 1);
msg_set_node_sig(msg, tn->random);
msg_set_dest_domain(msg, dest_domain);
@@ -249,7 +249,7 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *buf,
/* Send response, if necessary */
if (respond && (mtyp == DSC_REQ_MSG)) {
- rbuf = tipc_buf_acquire(INT_H_SIZE);
+ rbuf = tipc_buf_acquire(MAX_H_SIZE);
if (rbuf) {
tipc_disc_init_msg(net, rbuf, DSC_RESP_MSG, bearer);
tipc_bearer_send(net, bearer->identity, rbuf, &maddr);
@@ -359,8 +359,7 @@ int tipc_disc_create(struct net *net, struct tipc_bearer *b_ptr,
req = kmalloc(sizeof(*req), GFP_ATOMIC);
if (!req)
return -ENOMEM;
-
- req->buf = tipc_buf_acquire(INT_H_SIZE);
+ req->buf = tipc_buf_acquire(MAX_H_SIZE);
if (!req->buf) {
kfree(req);
return -ENOMEM;