diff options
author | Chien Tung <ctung@neteffect.com> | 2008-03-20 20:55:30 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2008-03-21 16:59:28 -0400 |
commit | f2b2b59b93082d02ee5ec8fda4ed94f498551a47 (patch) | |
tree | de2f5566fc128dccdfe958f4b9b401989e820dfa /drivers/infiniband/hw/nes | |
parent | dba92d3bc49c036056a48661d2d8fefe4c78375a (diff) |
RDMA/nes: Fix MSS calculation on RDMA path
Fix the calculation of the MSS for RDMA connections: we need to
allow space in frames for a VLAN tag too.
Signed-off-by: Chien Tung <ctung@neteffect.com>
Signed-off-by: Glenn Streiff <gstreiff@neteffect.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/nes')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_cm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c index 39adb267fb15..0bef878e0f65 100644 --- a/drivers/infiniband/hw/nes/nes_cm.c +++ b/drivers/infiniband/hw/nes/nes_cm.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/tcp.h> | 40 | #include <linux/tcp.h> |
41 | #include <linux/init.h> | 41 | #include <linux/init.h> |
42 | #include <linux/if_arp.h> | 42 | #include <linux/if_arp.h> |
43 | #include <linux/if_vlan.h> | ||
43 | #include <linux/notifier.h> | 44 | #include <linux/notifier.h> |
44 | #include <linux/net.h> | 45 | #include <linux/net.h> |
45 | #include <linux/types.h> | 46 | #include <linux/types.h> |
@@ -1072,7 +1073,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core, | |||
1072 | ts = current_kernel_time(); | 1073 | ts = current_kernel_time(); |
1073 | cm_node->tcp_cntxt.loc_seq_num = htonl(ts.tv_nsec); | 1074 | cm_node->tcp_cntxt.loc_seq_num = htonl(ts.tv_nsec); |
1074 | cm_node->tcp_cntxt.mss = nesvnic->max_frame_size - sizeof(struct iphdr) - | 1075 | cm_node->tcp_cntxt.mss = nesvnic->max_frame_size - sizeof(struct iphdr) - |
1075 | sizeof(struct tcphdr) - ETH_HLEN; | 1076 | sizeof(struct tcphdr) - ETH_HLEN - VLAN_HLEN; |
1076 | cm_node->tcp_cntxt.rcv_nxt = 0; | 1077 | cm_node->tcp_cntxt.rcv_nxt = 0; |
1077 | /* get a unique session ID , add thread_id to an upcounter to handle race */ | 1078 | /* get a unique session ID , add thread_id to an upcounter to handle race */ |
1078 | atomic_inc(&cm_core->node_cnt); | 1079 | atomic_inc(&cm_core->node_cnt); |