diff options
Diffstat (limited to 'drivers/infiniband/core/ud_header.c')
| -rw-r--r-- | drivers/infiniband/core/ud_header.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/infiniband/core/ud_header.c b/drivers/infiniband/core/ud_header.c index dc4eb1db5e96..527b23450ab3 100644 --- a/drivers/infiniband/core/ud_header.c +++ b/drivers/infiniband/core/ud_header.c | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2004 Topspin Corporation. All rights reserved. | 2 | * Copyright (c) 2004 Topspin Corporation. All rights reserved. |
| 3 | * Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. | ||
| 3 | * | 4 | * |
| 4 | * This software is available to you under a choice of one of two | 5 | * This software is available to you under a choice of one of two |
| 5 | * licenses. You may choose to be licensed under the terms of the GNU | 6 | * licenses. You may choose to be licensed under the terms of the GNU |
| @@ -34,7 +35,7 @@ | |||
| 34 | 35 | ||
| 35 | #include <linux/errno.h> | 36 | #include <linux/errno.h> |
| 36 | 37 | ||
| 37 | #include <ib_pack.h> | 38 | #include <rdma/ib_pack.h> |
| 38 | 39 | ||
| 39 | #define STRUCT_FIELD(header, field) \ | 40 | #define STRUCT_FIELD(header, field) \ |
| 40 | .struct_offset_bytes = offsetof(struct ib_unpacked_ ## header, field), \ | 41 | .struct_offset_bytes = offsetof(struct ib_unpacked_ ## header, field), \ |
| @@ -194,6 +195,7 @@ void ib_ud_header_init(int payload_bytes, | |||
| 194 | struct ib_ud_header *header) | 195 | struct ib_ud_header *header) |
| 195 | { | 196 | { |
| 196 | int header_len; | 197 | int header_len; |
| 198 | u16 packet_length; | ||
| 197 | 199 | ||
| 198 | memset(header, 0, sizeof *header); | 200 | memset(header, 0, sizeof *header); |
| 199 | 201 | ||
| @@ -208,7 +210,7 @@ void ib_ud_header_init(int payload_bytes, | |||
| 208 | header->lrh.link_version = 0; | 210 | header->lrh.link_version = 0; |
| 209 | header->lrh.link_next_header = | 211 | header->lrh.link_next_header = |
| 210 | grh_present ? IB_LNH_IBA_GLOBAL : IB_LNH_IBA_LOCAL; | 212 | grh_present ? IB_LNH_IBA_GLOBAL : IB_LNH_IBA_LOCAL; |
| 211 | header->lrh.packet_length = (IB_LRH_BYTES + | 213 | packet_length = (IB_LRH_BYTES + |
| 212 | IB_BTH_BYTES + | 214 | IB_BTH_BYTES + |
| 213 | IB_DETH_BYTES + | 215 | IB_DETH_BYTES + |
| 214 | payload_bytes + | 216 | payload_bytes + |
| @@ -217,8 +219,7 @@ void ib_ud_header_init(int payload_bytes, | |||
| 217 | 219 | ||
| 218 | header->grh_present = grh_present; | 220 | header->grh_present = grh_present; |
| 219 | if (grh_present) { | 221 | if (grh_present) { |
| 220 | header->lrh.packet_length += IB_GRH_BYTES / 4; | 222 | packet_length += IB_GRH_BYTES / 4; |
| 221 | |||
| 222 | header->grh.ip_version = 6; | 223 | header->grh.ip_version = 6; |
| 223 | header->grh.payload_length = | 224 | header->grh.payload_length = |
| 224 | cpu_to_be16((IB_BTH_BYTES + | 225 | cpu_to_be16((IB_BTH_BYTES + |
| @@ -229,7 +230,7 @@ void ib_ud_header_init(int payload_bytes, | |||
| 229 | header->grh.next_header = 0x1b; | 230 | header->grh.next_header = 0x1b; |
| 230 | } | 231 | } |
| 231 | 232 | ||
| 232 | cpu_to_be16s(&header->lrh.packet_length); | 233 | header->lrh.packet_length = cpu_to_be16(packet_length); |
| 233 | 234 | ||
| 234 | if (header->immediate_present) | 235 | if (header->immediate_present) |
| 235 | header->bth.opcode = IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE; | 236 | header->bth.opcode = IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE; |
