diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-15 17:12:58 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-15 17:12:58 -0400 |
commit | 1e09481365ce248dbb4eb06dad70129bb5807037 (patch) | |
tree | c0cff5bef95c8b5e7486f144718ade9a06c284dc /include/rdma | |
parent | 3e2f69fdd1b00166e7d589bce56b2d36a9e74374 (diff) | |
parent | b9d2252c1e44fa83a4e65fdc9eb93db6297c55af (diff) |
Merge branch 'linus' into core/softlockup
Conflicts:
kernel/softlockup.c
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_addr.h | 43 | ||||
-rw-r--r-- | include/rdma/ib_cache.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_cm.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_fmr_pool.h | 4 | ||||
-rw-r--r-- | include/rdma/ib_mad.h | 17 | ||||
-rw-r--r-- | include/rdma/ib_pack.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_sa.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_smi.h | 4 | ||||
-rw-r--r-- | include/rdma/ib_user_cm.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_user_mad.h | 2 | ||||
-rw-r--r-- | include/rdma/ib_user_verbs.h | 7 | ||||
-rw-r--r-- | include/rdma/ib_verbs.h | 149 | ||||
-rw-r--r-- | include/rdma/iw_cm.h | 2 | ||||
-rw-r--r-- | include/rdma/rdma_cm.h | 52 | ||||
-rw-r--r-- | include/rdma/rdma_cm_ib.h | 50 |
15 files changed, 234 insertions, 106 deletions
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h index c36750ff6ae8..483057b2f4b4 100644 --- a/include/rdma/ib_addr.h +++ b/include/rdma/ib_addr.h | |||
@@ -2,29 +2,33 @@ | |||
2 | * Copyright (c) 2005 Voltaire Inc. All rights reserved. | 2 | * Copyright (c) 2005 Voltaire Inc. All rights reserved. |
3 | * Copyright (c) 2005 Intel Corporation. All rights reserved. | 3 | * Copyright (c) 2005 Intel Corporation. All rights reserved. |
4 | * | 4 | * |
5 | * This Software is licensed under one of the following licenses: | 5 | * This software is available to you under a choice of one of two |
6 | * licenses. You may choose to be licensed under the terms of the GNU | ||
7 | * General Public License (GPL) Version 2, available from the file | ||
8 | * COPYING in the main directory of this source tree, or the | ||
9 | * OpenIB.org BSD license below: | ||
6 | * | 10 | * |
7 | * 1) under the terms of the "Common Public License 1.0" a copy of which is | 11 | * Redistribution and use in source and binary forms, with or |
8 | * available from the Open Source Initiative, see | 12 | * without modification, are permitted provided that the following |
9 | * http://www.opensource.org/licenses/cpl.php. | 13 | * conditions are met: |
10 | * | 14 | * |
11 | * 2) under the terms of the "The BSD License" a copy of which is | 15 | * - Redistributions of source code must retain the above |
12 | * available from the Open Source Initiative, see | 16 | * copyright notice, this list of conditions and the following |
13 | * http://www.opensource.org/licenses/bsd-license.php. | 17 | * disclaimer. |
14 | * | 18 | * |
15 | * 3) under the terms of the "GNU General Public License (GPL) Version 2" a | 19 | * - Redistributions in binary form must reproduce the above |
16 | * copy of which is available from the Open Source Initiative, see | 20 | * copyright notice, this list of conditions and the following |
17 | * http://www.opensource.org/licenses/gpl-license.php. | 21 | * disclaimer in the documentation and/or other materials |
18 | * | 22 | * provided with the distribution. |
19 | * Licensee has the right to choose one of the above licenses. | ||
20 | * | ||
21 | * Redistributions of source code must retain the above copyright | ||
22 | * notice and one of the license notices. | ||
23 | * | ||
24 | * Redistributions in binary form must reproduce both the above copyright | ||
25 | * notice, one of the license notices in the documentation | ||
26 | * and/or other materials provided with the distribution. | ||
27 | * | 23 | * |
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
25 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
26 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
27 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
28 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
31 | * SOFTWARE. | ||
28 | */ | 32 | */ |
29 | 33 | ||
30 | #if !defined(IB_ADDR_H) | 34 | #if !defined(IB_ADDR_H) |
@@ -57,6 +61,7 @@ struct rdma_dev_addr { | |||
57 | unsigned char dst_dev_addr[MAX_ADDR_LEN]; | 61 | unsigned char dst_dev_addr[MAX_ADDR_LEN]; |
58 | unsigned char broadcast[MAX_ADDR_LEN]; | 62 | unsigned char broadcast[MAX_ADDR_LEN]; |
59 | enum rdma_node_type dev_type; | 63 | enum rdma_node_type dev_type; |
64 | struct net_device *src_dev; | ||
60 | }; | 65 | }; |
61 | 66 | ||
62 | /** | 67 | /** |
diff --git a/include/rdma/ib_cache.h b/include/rdma/ib_cache.h index f179d233ffc3..00a2b8ec327f 100644 --- a/include/rdma/ib_cache.h +++ b/include/rdma/ib_cache.h | |||
@@ -30,8 +30,6 @@ | |||
30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
32 | * SOFTWARE. | 32 | * SOFTWARE. |
33 | * | ||
34 | * $Id: ib_cache.h 1349 2004-12-16 21:09:43Z roland $ | ||
35 | */ | 33 | */ |
36 | 34 | ||
37 | #ifndef _IB_CACHE_H | 35 | #ifndef _IB_CACHE_H |
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index a627c8682d2f..ec7c6d99ed3f 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h | |||
@@ -31,8 +31,6 @@ | |||
31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
33 | * SOFTWARE. | 33 | * SOFTWARE. |
34 | * | ||
35 | * $Id: ib_cm.h 4311 2005-12-05 18:42:01Z sean.hefty $ | ||
36 | */ | 34 | */ |
37 | #if !defined(IB_CM_H) | 35 | #if !defined(IB_CM_H) |
38 | #define IB_CM_H | 36 | #define IB_CM_H |
diff --git a/include/rdma/ib_fmr_pool.h b/include/rdma/ib_fmr_pool.h index 00dadbf94e1d..f62b842e6596 100644 --- a/include/rdma/ib_fmr_pool.h +++ b/include/rdma/ib_fmr_pool.h | |||
@@ -29,8 +29,6 @@ | |||
29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
31 | * SOFTWARE. | 31 | * SOFTWARE. |
32 | * | ||
33 | * $Id: ib_fmr_pool.h 2730 2005-06-28 16:43:03Z sean.hefty $ | ||
34 | */ | 32 | */ |
35 | 33 | ||
36 | #if !defined(IB_FMR_POOL_H) | 34 | #if !defined(IB_FMR_POOL_H) |
@@ -61,7 +59,7 @@ struct ib_fmr_pool_param { | |||
61 | int pool_size; | 59 | int pool_size; |
62 | int dirty_watermark; | 60 | int dirty_watermark; |
63 | void (*flush_function)(struct ib_fmr_pool *pool, | 61 | void (*flush_function)(struct ib_fmr_pool *pool, |
64 | void * arg); | 62 | void *arg); |
65 | void *flush_arg; | 63 | void *flush_arg; |
66 | unsigned cache:1; | 64 | unsigned cache:1; |
67 | }; | 65 | }; |
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index 7228c056b9e9..5f6c40fffcf4 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
@@ -32,11 +32,9 @@ | |||
32 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 32 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
33 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 33 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
34 | * SOFTWARE. | 34 | * SOFTWARE. |
35 | * | ||
36 | * $Id: ib_mad.h 5596 2006-03-03 01:00:07Z sean.hefty $ | ||
37 | */ | 35 | */ |
38 | 36 | ||
39 | #if !defined( IB_MAD_H ) | 37 | #if !defined(IB_MAD_H) |
40 | #define IB_MAD_H | 38 | #define IB_MAD_H |
41 | 39 | ||
42 | #include <linux/list.h> | 40 | #include <linux/list.h> |
@@ -194,8 +192,7 @@ struct ib_vendor_mad { | |||
194 | u8 data[IB_MGMT_VENDOR_DATA]; | 192 | u8 data[IB_MGMT_VENDOR_DATA]; |
195 | }; | 193 | }; |
196 | 194 | ||
197 | struct ib_class_port_info | 195 | struct ib_class_port_info { |
198 | { | ||
199 | u8 base_version; | 196 | u8 base_version; |
200 | u8 class_version; | 197 | u8 class_version; |
201 | __be16 capability_mask; | 198 | __be16 capability_mask; |
@@ -614,11 +611,11 @@ int ib_process_mad_wc(struct ib_mad_agent *mad_agent, | |||
614 | * any class specific header, and MAD data area. | 611 | * any class specific header, and MAD data area. |
615 | * If @rmpp_active is set, the RMPP header will be initialized for sending. | 612 | * If @rmpp_active is set, the RMPP header will be initialized for sending. |
616 | */ | 613 | */ |
617 | struct ib_mad_send_buf * ib_create_send_mad(struct ib_mad_agent *mad_agent, | 614 | struct ib_mad_send_buf *ib_create_send_mad(struct ib_mad_agent *mad_agent, |
618 | u32 remote_qpn, u16 pkey_index, | 615 | u32 remote_qpn, u16 pkey_index, |
619 | int rmpp_active, | 616 | int rmpp_active, |
620 | int hdr_len, int data_len, | 617 | int hdr_len, int data_len, |
621 | gfp_t gfp_mask); | 618 | gfp_t gfp_mask); |
622 | 619 | ||
623 | /** | 620 | /** |
624 | * ib_is_mad_class_rmpp - returns whether given management class | 621 | * ib_is_mad_class_rmpp - returns whether given management class |
diff --git a/include/rdma/ib_pack.h b/include/rdma/ib_pack.h index f926020d6331..d7fc45c4eba9 100644 --- a/include/rdma/ib_pack.h +++ b/include/rdma/ib_pack.h | |||
@@ -28,8 +28,6 @@ | |||
28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
30 | * SOFTWARE. | 30 | * SOFTWARE. |
31 | * | ||
32 | * $Id: ib_pack.h 1349 2004-12-16 21:09:43Z roland $ | ||
33 | */ | 31 | */ |
34 | 32 | ||
35 | #ifndef IB_PACK_H | 33 | #ifndef IB_PACK_H |
diff --git a/include/rdma/ib_sa.h b/include/rdma/ib_sa.h index 942692b0b92e..3841c1aff692 100644 --- a/include/rdma/ib_sa.h +++ b/include/rdma/ib_sa.h | |||
@@ -30,8 +30,6 @@ | |||
30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 30 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 31 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
32 | * SOFTWARE. | 32 | * SOFTWARE. |
33 | * | ||
34 | * $Id: ib_sa.h 2811 2005-07-06 18:11:43Z halr $ | ||
35 | */ | 33 | */ |
36 | 34 | ||
37 | #ifndef IB_SA_H | 35 | #ifndef IB_SA_H |
diff --git a/include/rdma/ib_smi.h b/include/rdma/ib_smi.h index f29af135ba83..aaca0878668f 100644 --- a/include/rdma/ib_smi.h +++ b/include/rdma/ib_smi.h | |||
@@ -32,11 +32,9 @@ | |||
32 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 32 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
33 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 33 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
34 | * SOFTWARE. | 34 | * SOFTWARE. |
35 | * | ||
36 | * $Id: ib_smi.h 1389 2004-12-27 22:56:47Z roland $ | ||
37 | */ | 35 | */ |
38 | 36 | ||
39 | #if !defined( IB_SMI_H ) | 37 | #if !defined(IB_SMI_H) |
40 | #define IB_SMI_H | 38 | #define IB_SMI_H |
41 | 39 | ||
42 | #include <rdma/ib_mad.h> | 40 | #include <rdma/ib_mad.h> |
diff --git a/include/rdma/ib_user_cm.h b/include/rdma/ib_user_cm.h index 37650afb982c..bd3d380781e0 100644 --- a/include/rdma/ib_user_cm.h +++ b/include/rdma/ib_user_cm.h | |||
@@ -29,8 +29,6 @@ | |||
29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
31 | * SOFTWARE. | 31 | * SOFTWARE. |
32 | * | ||
33 | * $Id: ib_user_cm.h 4019 2005-11-11 00:33:09Z sean.hefty $ | ||
34 | */ | 32 | */ |
35 | 33 | ||
36 | #ifndef IB_USER_CM_H | 34 | #ifndef IB_USER_CM_H |
diff --git a/include/rdma/ib_user_mad.h b/include/rdma/ib_user_mad.h index 29d2c7205a90..d6fce1cbdb90 100644 --- a/include/rdma/ib_user_mad.h +++ b/include/rdma/ib_user_mad.h | |||
@@ -29,8 +29,6 @@ | |||
29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
31 | * SOFTWARE. | 31 | * SOFTWARE. |
32 | * | ||
33 | * $Id: ib_user_mad.h 2814 2005-07-06 19:14:09Z halr $ | ||
34 | */ | 32 | */ |
35 | 33 | ||
36 | #ifndef IB_USER_MAD_H | 34 | #ifndef IB_USER_MAD_H |
diff --git a/include/rdma/ib_user_verbs.h b/include/rdma/ib_user_verbs.h index 8d65bf0a625b..a17f77106149 100644 --- a/include/rdma/ib_user_verbs.h +++ b/include/rdma/ib_user_verbs.h | |||
@@ -31,8 +31,6 @@ | |||
31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 31 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 32 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
33 | * SOFTWARE. | 33 | * SOFTWARE. |
34 | * | ||
35 | * $Id: ib_user_verbs.h 4019 2005-11-11 00:33:09Z sean.hefty $ | ||
36 | */ | 34 | */ |
37 | 35 | ||
38 | #ifndef IB_USER_VERBS_H | 36 | #ifndef IB_USER_VERBS_H |
@@ -291,7 +289,10 @@ struct ib_uverbs_wc { | |||
291 | __u32 opcode; | 289 | __u32 opcode; |
292 | __u32 vendor_err; | 290 | __u32 vendor_err; |
293 | __u32 byte_len; | 291 | __u32 byte_len; |
294 | __u32 imm_data; | 292 | union { |
293 | __u32 imm_data; | ||
294 | __u32 invalidate_rkey; | ||
295 | } ex; | ||
295 | __u32 qp_num; | 296 | __u32 qp_num; |
296 | __u32 src_qp; | 297 | __u32 src_qp; |
297 | __u32 wc_flags; | 298 | __u32 wc_flags; |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 31d30b1852e8..90b529f7a154 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -34,8 +34,6 @@ | |||
34 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | 34 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
35 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 35 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
36 | * SOFTWARE. | 36 | * SOFTWARE. |
37 | * | ||
38 | * $Id: ib_verbs.h 1349 2004-12-16 21:09:43Z roland $ | ||
39 | */ | 37 | */ |
40 | 38 | ||
41 | #if !defined(IB_VERBS_H) | 39 | #if !defined(IB_VERBS_H) |
@@ -93,7 +91,7 @@ enum ib_device_cap_flags { | |||
93 | IB_DEVICE_RC_RNR_NAK_GEN = (1<<12), | 91 | IB_DEVICE_RC_RNR_NAK_GEN = (1<<12), |
94 | IB_DEVICE_SRQ_RESIZE = (1<<13), | 92 | IB_DEVICE_SRQ_RESIZE = (1<<13), |
95 | IB_DEVICE_N_NOTIFY_CQ = (1<<14), | 93 | IB_DEVICE_N_NOTIFY_CQ = (1<<14), |
96 | IB_DEVICE_ZERO_STAG = (1<<15), | 94 | IB_DEVICE_LOCAL_DMA_LKEY = (1<<15), |
97 | IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */ | 95 | IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */ |
98 | IB_DEVICE_MEM_WINDOW = (1<<17), | 96 | IB_DEVICE_MEM_WINDOW = (1<<17), |
99 | /* | 97 | /* |
@@ -105,6 +103,8 @@ enum ib_device_cap_flags { | |||
105 | */ | 103 | */ |
106 | IB_DEVICE_UD_IP_CSUM = (1<<18), | 104 | IB_DEVICE_UD_IP_CSUM = (1<<18), |
107 | IB_DEVICE_UD_TSO = (1<<19), | 105 | IB_DEVICE_UD_TSO = (1<<19), |
106 | IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21), | ||
107 | IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22), | ||
108 | }; | 108 | }; |
109 | 109 | ||
110 | enum ib_atomic_cap { | 110 | enum ib_atomic_cap { |
@@ -150,6 +150,7 @@ struct ib_device_attr { | |||
150 | int max_srq; | 150 | int max_srq; |
151 | int max_srq_wr; | 151 | int max_srq_wr; |
152 | int max_srq_sge; | 152 | int max_srq_sge; |
153 | unsigned int max_fast_reg_page_list_len; | ||
153 | u16 max_pkeys; | 154 | u16 max_pkeys; |
154 | u8 local_ca_ack_delay; | 155 | u8 local_ca_ack_delay; |
155 | }; | 156 | }; |
@@ -226,6 +227,57 @@ static inline int ib_width_enum_to_int(enum ib_port_width width) | |||
226 | } | 227 | } |
227 | } | 228 | } |
228 | 229 | ||
230 | struct ib_protocol_stats { | ||
231 | /* TBD... */ | ||
232 | }; | ||
233 | |||
234 | struct iw_protocol_stats { | ||
235 | u64 ipInReceives; | ||
236 | u64 ipInHdrErrors; | ||
237 | u64 ipInTooBigErrors; | ||
238 | u64 ipInNoRoutes; | ||
239 | u64 ipInAddrErrors; | ||
240 | u64 ipInUnknownProtos; | ||
241 | u64 ipInTruncatedPkts; | ||
242 | u64 ipInDiscards; | ||
243 | u64 ipInDelivers; | ||
244 | u64 ipOutForwDatagrams; | ||
245 | u64 ipOutRequests; | ||
246 | u64 ipOutDiscards; | ||
247 | u64 ipOutNoRoutes; | ||
248 | u64 ipReasmTimeout; | ||
249 | u64 ipReasmReqds; | ||
250 | u64 ipReasmOKs; | ||
251 | u64 ipReasmFails; | ||
252 | u64 ipFragOKs; | ||
253 | u64 ipFragFails; | ||
254 | u64 ipFragCreates; | ||
255 | u64 ipInMcastPkts; | ||
256 | u64 ipOutMcastPkts; | ||
257 | u64 ipInBcastPkts; | ||
258 | u64 ipOutBcastPkts; | ||
259 | |||
260 | u64 tcpRtoAlgorithm; | ||
261 | u64 tcpRtoMin; | ||
262 | u64 tcpRtoMax; | ||
263 | u64 tcpMaxConn; | ||
264 | u64 tcpActiveOpens; | ||
265 | u64 tcpPassiveOpens; | ||
266 | u64 tcpAttemptFails; | ||
267 | u64 tcpEstabResets; | ||
268 | u64 tcpCurrEstab; | ||
269 | u64 tcpInSegs; | ||
270 | u64 tcpOutSegs; | ||
271 | u64 tcpRetransSegs; | ||
272 | u64 tcpInErrs; | ||
273 | u64 tcpOutRsts; | ||
274 | }; | ||
275 | |||
276 | union rdma_protocol_stats { | ||
277 | struct ib_protocol_stats ib; | ||
278 | struct iw_protocol_stats iw; | ||
279 | }; | ||
280 | |||
229 | struct ib_port_attr { | 281 | struct ib_port_attr { |
230 | enum ib_port_state state; | 282 | enum ib_port_state state; |
231 | enum ib_mtu max_mtu; | 283 | enum ib_mtu max_mtu; |
@@ -413,6 +465,8 @@ enum ib_wc_opcode { | |||
413 | IB_WC_FETCH_ADD, | 465 | IB_WC_FETCH_ADD, |
414 | IB_WC_BIND_MW, | 466 | IB_WC_BIND_MW, |
415 | IB_WC_LSO, | 467 | IB_WC_LSO, |
468 | IB_WC_LOCAL_INV, | ||
469 | IB_WC_FAST_REG_MR, | ||
416 | /* | 470 | /* |
417 | * Set value of IB_WC_RECV so consumers can test if a completion is a | 471 | * Set value of IB_WC_RECV so consumers can test if a completion is a |
418 | * receive by testing (opcode & IB_WC_RECV). | 472 | * receive by testing (opcode & IB_WC_RECV). |
@@ -423,7 +477,8 @@ enum ib_wc_opcode { | |||
423 | 477 | ||
424 | enum ib_wc_flags { | 478 | enum ib_wc_flags { |
425 | IB_WC_GRH = 1, | 479 | IB_WC_GRH = 1, |
426 | IB_WC_WITH_IMM = (1<<1) | 480 | IB_WC_WITH_IMM = (1<<1), |
481 | IB_WC_WITH_INVALIDATE = (1<<2), | ||
427 | }; | 482 | }; |
428 | 483 | ||
429 | struct ib_wc { | 484 | struct ib_wc { |
@@ -433,7 +488,10 @@ struct ib_wc { | |||
433 | u32 vendor_err; | 488 | u32 vendor_err; |
434 | u32 byte_len; | 489 | u32 byte_len; |
435 | struct ib_qp *qp; | 490 | struct ib_qp *qp; |
436 | __be32 imm_data; | 491 | union { |
492 | __be32 imm_data; | ||
493 | u32 invalidate_rkey; | ||
494 | } ex; | ||
437 | u32 src_qp; | 495 | u32 src_qp; |
438 | int wc_flags; | 496 | int wc_flags; |
439 | u16 pkey_index; | 497 | u16 pkey_index; |
@@ -498,7 +556,8 @@ enum ib_qp_type { | |||
498 | }; | 556 | }; |
499 | 557 | ||
500 | enum ib_qp_create_flags { | 558 | enum ib_qp_create_flags { |
501 | IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0, | 559 | IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0, |
560 | IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1, | ||
502 | }; | 561 | }; |
503 | 562 | ||
504 | struct ib_qp_init_attr { | 563 | struct ib_qp_init_attr { |
@@ -627,6 +686,9 @@ enum ib_wr_opcode { | |||
627 | IB_WR_ATOMIC_FETCH_AND_ADD, | 686 | IB_WR_ATOMIC_FETCH_AND_ADD, |
628 | IB_WR_LSO, | 687 | IB_WR_LSO, |
629 | IB_WR_SEND_WITH_INV, | 688 | IB_WR_SEND_WITH_INV, |
689 | IB_WR_RDMA_READ_WITH_INV, | ||
690 | IB_WR_LOCAL_INV, | ||
691 | IB_WR_FAST_REG_MR, | ||
630 | }; | 692 | }; |
631 | 693 | ||
632 | enum ib_send_flags { | 694 | enum ib_send_flags { |
@@ -643,6 +705,12 @@ struct ib_sge { | |||
643 | u32 lkey; | 705 | u32 lkey; |
644 | }; | 706 | }; |
645 | 707 | ||
708 | struct ib_fast_reg_page_list { | ||
709 | struct ib_device *device; | ||
710 | u64 *page_list; | ||
711 | unsigned int max_page_list_len; | ||
712 | }; | ||
713 | |||
646 | struct ib_send_wr { | 714 | struct ib_send_wr { |
647 | struct ib_send_wr *next; | 715 | struct ib_send_wr *next; |
648 | u64 wr_id; | 716 | u64 wr_id; |
@@ -675,6 +743,15 @@ struct ib_send_wr { | |||
675 | u16 pkey_index; /* valid for GSI only */ | 743 | u16 pkey_index; /* valid for GSI only */ |
676 | u8 port_num; /* valid for DR SMPs on switch only */ | 744 | u8 port_num; /* valid for DR SMPs on switch only */ |
677 | } ud; | 745 | } ud; |
746 | struct { | ||
747 | u64 iova_start; | ||
748 | struct ib_fast_reg_page_list *page_list; | ||
749 | unsigned int page_shift; | ||
750 | unsigned int page_list_len; | ||
751 | u32 length; | ||
752 | int access_flags; | ||
753 | u32 rkey; | ||
754 | } fast_reg; | ||
678 | } wr; | 755 | } wr; |
679 | }; | 756 | }; |
680 | 757 | ||
@@ -777,7 +854,7 @@ struct ib_cq { | |||
777 | struct ib_uobject *uobject; | 854 | struct ib_uobject *uobject; |
778 | ib_comp_handler comp_handler; | 855 | ib_comp_handler comp_handler; |
779 | void (*event_handler)(struct ib_event *, void *); | 856 | void (*event_handler)(struct ib_event *, void *); |
780 | void * cq_context; | 857 | void *cq_context; |
781 | int cqe; | 858 | int cqe; |
782 | atomic_t usecnt; /* count number of work queues */ | 859 | atomic_t usecnt; /* count number of work queues */ |
783 | }; | 860 | }; |
@@ -883,7 +960,7 @@ struct ib_dma_mapping_ops { | |||
883 | void (*sync_single_for_cpu)(struct ib_device *dev, | 960 | void (*sync_single_for_cpu)(struct ib_device *dev, |
884 | u64 dma_handle, | 961 | u64 dma_handle, |
885 | size_t size, | 962 | size_t size, |
886 | enum dma_data_direction dir); | 963 | enum dma_data_direction dir); |
887 | void (*sync_single_for_device)(struct ib_device *dev, | 964 | void (*sync_single_for_device)(struct ib_device *dev, |
888 | u64 dma_handle, | 965 | u64 dma_handle, |
889 | size_t size, | 966 | size_t size, |
@@ -919,6 +996,8 @@ struct ib_device { | |||
919 | 996 | ||
920 | struct iw_cm_verbs *iwcm; | 997 | struct iw_cm_verbs *iwcm; |
921 | 998 | ||
999 | int (*get_protocol_stats)(struct ib_device *device, | ||
1000 | union rdma_protocol_stats *stats); | ||
922 | int (*query_device)(struct ib_device *device, | 1001 | int (*query_device)(struct ib_device *device, |
923 | struct ib_device_attr *device_attr); | 1002 | struct ib_device_attr *device_attr); |
924 | int (*query_port)(struct ib_device *device, | 1003 | int (*query_port)(struct ib_device *device, |
@@ -1013,6 +1092,11 @@ struct ib_device { | |||
1013 | int (*query_mr)(struct ib_mr *mr, | 1092 | int (*query_mr)(struct ib_mr *mr, |
1014 | struct ib_mr_attr *mr_attr); | 1093 | struct ib_mr_attr *mr_attr); |
1015 | int (*dereg_mr)(struct ib_mr *mr); | 1094 | int (*dereg_mr)(struct ib_mr *mr); |
1095 | struct ib_mr * (*alloc_fast_reg_mr)(struct ib_pd *pd, | ||
1096 | int max_page_list_len); | ||
1097 | struct ib_fast_reg_page_list * (*alloc_fast_reg_page_list)(struct ib_device *device, | ||
1098 | int page_list_len); | ||
1099 | void (*free_fast_reg_page_list)(struct ib_fast_reg_page_list *page_list); | ||
1016 | int (*rereg_phys_mr)(struct ib_mr *mr, | 1100 | int (*rereg_phys_mr)(struct ib_mr *mr, |
1017 | int mr_rereg_mask, | 1101 | int mr_rereg_mask, |
1018 | struct ib_pd *pd, | 1102 | struct ib_pd *pd, |
@@ -1065,6 +1149,7 @@ struct ib_device { | |||
1065 | 1149 | ||
1066 | char node_desc[64]; | 1150 | char node_desc[64]; |
1067 | __be64 node_guid; | 1151 | __be64 node_guid; |
1152 | u32 local_dma_lkey; | ||
1068 | u8 node_type; | 1153 | u8 node_type; |
1069 | u8 phys_port_cnt; | 1154 | u8 phys_port_cnt; |
1070 | }; | 1155 | }; |
@@ -1807,6 +1892,54 @@ int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr); | |||
1807 | int ib_dereg_mr(struct ib_mr *mr); | 1892 | int ib_dereg_mr(struct ib_mr *mr); |
1808 | 1893 | ||
1809 | /** | 1894 | /** |
1895 | * ib_alloc_fast_reg_mr - Allocates memory region usable with the | ||
1896 | * IB_WR_FAST_REG_MR send work request. | ||
1897 | * @pd: The protection domain associated with the region. | ||
1898 | * @max_page_list_len: requested max physical buffer list length to be | ||
1899 | * used with fast register work requests for this MR. | ||
1900 | */ | ||
1901 | struct ib_mr *ib_alloc_fast_reg_mr(struct ib_pd *pd, int max_page_list_len); | ||
1902 | |||
1903 | /** | ||
1904 | * ib_alloc_fast_reg_page_list - Allocates a page list array | ||
1905 | * @device - ib device pointer. | ||
1906 | * @page_list_len - size of the page list array to be allocated. | ||
1907 | * | ||
1908 | * This allocates and returns a struct ib_fast_reg_page_list * and a | ||
1909 | * page_list array that is at least page_list_len in size. The actual | ||
1910 | * size is returned in max_page_list_len. The caller is responsible | ||
1911 | * for initializing the contents of the page_list array before posting | ||
1912 | * a send work request with the IB_WC_FAST_REG_MR opcode. | ||
1913 | * | ||
1914 | * The page_list array entries must be translated using one of the | ||
1915 | * ib_dma_*() functions just like the addresses passed to | ||
1916 | * ib_map_phys_fmr(). Once the ib_post_send() is issued, the struct | ||
1917 | * ib_fast_reg_page_list must not be modified by the caller until the | ||
1918 | * IB_WC_FAST_REG_MR work request completes. | ||
1919 | */ | ||
1920 | struct ib_fast_reg_page_list *ib_alloc_fast_reg_page_list( | ||
1921 | struct ib_device *device, int page_list_len); | ||
1922 | |||
1923 | /** | ||
1924 | * ib_free_fast_reg_page_list - Deallocates a previously allocated | ||
1925 | * page list array. | ||
1926 | * @page_list - struct ib_fast_reg_page_list pointer to be deallocated. | ||
1927 | */ | ||
1928 | void ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list); | ||
1929 | |||
1930 | /** | ||
1931 | * ib_update_fast_reg_key - updates the key portion of the fast_reg MR | ||
1932 | * R_Key and L_Key. | ||
1933 | * @mr - struct ib_mr pointer to be updated. | ||
1934 | * @newkey - new key to be used. | ||
1935 | */ | ||
1936 | static inline void ib_update_fast_reg_key(struct ib_mr *mr, u8 newkey) | ||
1937 | { | ||
1938 | mr->lkey = (mr->lkey & 0xffffff00) | newkey; | ||
1939 | mr->rkey = (mr->rkey & 0xffffff00) | newkey; | ||
1940 | } | ||
1941 | |||
1942 | /** | ||
1810 | * ib_alloc_mw - Allocates a memory window. | 1943 | * ib_alloc_mw - Allocates a memory window. |
1811 | * @pd: The protection domain associated with the memory window. | 1944 | * @pd: The protection domain associated with the memory window. |
1812 | */ | 1945 | */ |
diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h index aeefa9b740dc..cbb822e8d791 100644 --- a/include/rdma/iw_cm.h +++ b/include/rdma/iw_cm.h | |||
@@ -62,7 +62,7 @@ struct iw_cm_event { | |||
62 | struct sockaddr_in remote_addr; | 62 | struct sockaddr_in remote_addr; |
63 | void *private_data; | 63 | void *private_data; |
64 | u8 private_data_len; | 64 | u8 private_data_len; |
65 | void* provider_data; | 65 | void *provider_data; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | /** | 68 | /** |
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h index 010f876f41d8..22bb2e7bab1a 100644 --- a/include/rdma/rdma_cm.h +++ b/include/rdma/rdma_cm.h | |||
@@ -2,29 +2,33 @@ | |||
2 | * Copyright (c) 2005 Voltaire Inc. All rights reserved. | 2 | * Copyright (c) 2005 Voltaire Inc. All rights reserved. |
3 | * Copyright (c) 2005 Intel Corporation. All rights reserved. | 3 | * Copyright (c) 2005 Intel Corporation. All rights reserved. |
4 | * | 4 | * |
5 | * This Software is licensed under one of the following licenses: | 5 | * This software is available to you under a choice of one of two |
6 | * licenses. You may choose to be licensed under the terms of the GNU | ||
7 | * General Public License (GPL) Version 2, available from the file | ||
8 | * COPYING in the main directory of this source tree, or the | ||
9 | * OpenIB.org BSD license below: | ||
6 | * | 10 | * |
7 | * 1) under the terms of the "Common Public License 1.0" a copy of which is | 11 | * Redistribution and use in source and binary forms, with or |
8 | * available from the Open Source Initiative, see | 12 | * without modification, are permitted provided that the following |
9 | * http://www.opensource.org/licenses/cpl.php. | 13 | * conditions are met: |
10 | * | 14 | * |
11 | * 2) under the terms of the "The BSD License" a copy of which is | 15 | * - Redistributions of source code must retain the above |
12 | * available from the Open Source Initiative, see | 16 | * copyright notice, this list of conditions and the following |
13 | * http://www.opensource.org/licenses/bsd-license.php. | 17 | * disclaimer. |
14 | * | 18 | * |
15 | * 3) under the terms of the "GNU General Public License (GPL) Version 2" a | 19 | * - Redistributions in binary form must reproduce the above |
16 | * copy of which is available from the Open Source Initiative, see | 20 | * copyright notice, this list of conditions and the following |
17 | * http://www.opensource.org/licenses/gpl-license.php. | 21 | * disclaimer in the documentation and/or other materials |
18 | * | 22 | * provided with the distribution. |
19 | * Licensee has the right to choose one of the above licenses. | ||
20 | * | ||
21 | * Redistributions of source code must retain the above copyright | ||
22 | * notice and one of the license notices. | ||
23 | * | ||
24 | * Redistributions in binary form must reproduce both the above copyright | ||
25 | * notice, one of the license notices in the documentation | ||
26 | * and/or other materials provided with the distribution. | ||
27 | * | 23 | * |
24 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
25 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
26 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
27 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS | ||
28 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
29 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
30 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
31 | * SOFTWARE. | ||
28 | */ | 32 | */ |
29 | 33 | ||
30 | #if !defined(RDMA_CM_H) | 34 | #if !defined(RDMA_CM_H) |
@@ -57,11 +61,11 @@ enum rdma_cm_event_type { | |||
57 | }; | 61 | }; |
58 | 62 | ||
59 | enum rdma_port_space { | 63 | enum rdma_port_space { |
60 | RDMA_PS_SDP = 0x0001, | 64 | RDMA_PS_SDP = 0x0001, |
61 | RDMA_PS_IPOIB= 0x0002, | 65 | RDMA_PS_IPOIB = 0x0002, |
62 | RDMA_PS_TCP = 0x0106, | 66 | RDMA_PS_TCP = 0x0106, |
63 | RDMA_PS_UDP = 0x0111, | 67 | RDMA_PS_UDP = 0x0111, |
64 | RDMA_PS_SCTP = 0x0183 | 68 | RDMA_PS_SCTP = 0x0183 |
65 | }; | 69 | }; |
66 | 70 | ||
67 | struct rdma_addr { | 71 | struct rdma_addr { |
diff --git a/include/rdma/rdma_cm_ib.h b/include/rdma/rdma_cm_ib.h index 950424b38f16..2389c3b45404 100644 --- a/include/rdma/rdma_cm_ib.h +++ b/include/rdma/rdma_cm_ib.h | |||
@@ -1,29 +1,33 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2006 Intel Corporation. All rights reserved. | 2 | * Copyright (c) 2006 Intel Corporation. All rights reserved. |
3 | * | 3 | * |
4 | * This Software is licensed under one of the following licenses: | 4 | * This software is available to you under a choice of one of two |
5 | * | 5 | * licenses. You may choose to be licensed under the terms of the GNU |
6 | * 1) under the terms of the "Common Public License 1.0" a copy of which is | 6 | * General Public License (GPL) Version 2, available from the file |
7 | * available from the Open Source Initiative, see | 7 | * COPYING in the main directory of this source tree, or the |
8 | * http://www.opensource.org/licenses/cpl.php. | 8 | * OpenIB.org BSD license below: |
9 | * | 9 | * |
10 | * 2) under the terms of the "The BSD License" a copy of which is | 10 | * Redistribution and use in source and binary forms, with or |
11 | * available from the Open Source Initiative, see | 11 | * without modification, are permitted provided that the following |
12 | * http://www.opensource.org/licenses/bsd-license.php. | 12 | * conditions are met: |
13 | * | 13 | * |
14 | * 3) under the terms of the "GNU General Public License (GPL) Version 2" a | 14 | * - Redistributions of source code must retain the above |
15 | * copy of which is available from the Open Source Initiative, see | 15 | * copyright notice, this list of conditions and the following |
16 | * http://www.opensource.org/licenses/gpl-license.php. | 16 | * disclaimer. |
17 | * | 17 | * |
18 | * Licensee has the right to choose one of the above licenses. | 18 | * - Redistributions in binary form must reproduce the above |
19 | * | 19 | * copyright notice, this list of conditions and the following |
20 | * Redistributions of source code must retain the above copyright | 20 | * disclaimer in the documentation and/or other materials |
21 | * notice and one of the license notices. | 21 | * provided with the distribution. |
22 | * | 22 | * |
23 | * Redistributions in binary form must reproduce both the above copyright | 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
24 | * notice, one of the license notices in the documentation | 24 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
25 | * and/or other materials provided with the distribution. | 25 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
26 | * | 26 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
27 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN | ||
28 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
29 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
30 | * SOFTWARE. | ||
27 | */ | 31 | */ |
28 | 32 | ||
29 | #if !defined(RDMA_CM_IB_H) | 33 | #if !defined(RDMA_CM_IB_H) |