Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (52 commits) IB/mlx4: Use kzalloc() for new QPs so flags are initialized to 0 mlx4_core: Use MOD_STAT_CFG command to get minimal page size RDMA/cma: Simplify locking needed for serialization of callbacks RDMA/addr: Keep pointer to netdevice in struct rdma_dev_addr RDMA/cxgb3: Fixes for zero STag RDMA/core: Add local DMA L_Key support IB/mthca: Fix check of max_send_sge for special QPs IB/mthca: Use round_jiffies() for catastrophic error polling timer IB/mthca: Remove "stop" flag for catastrophic error polling timer IPoIB: Double default RX/TX ring sizes IPoIB/cm: Reduce connected mode TX object size IB/ipath: Use IEEE OUI for vendor_id reported by ibv_query_device() IPoIB: Use dev_set_mtu() to change mtu IPoIB: Use rtnl lock/unlock when changing device flags IPoIB: Get rid of ipoib_mcast_detach() wrapper IPoIB: Only set Q_Key once: after joining broadcast group IPoIB: Remove priv->mcast_mutex IPoIB: Remove unused IPOIB_MCAST_STARTED code RDMA/cxgb3: Set rkey field for new memory windows in iwch_alloc_mw() RDMA/nes: Get rid of ring_doorbell parameter of nes_post_cqp_request() ...
This commit is contained in:
@@ -398,7 +398,8 @@ int mlx4_srq_query(struct mlx4_dev *dev, struct mlx4_srq *srq, int *limit_waterm
|
||||
int mlx4_INIT_PORT(struct mlx4_dev *dev, int port);
|
||||
int mlx4_CLOSE_PORT(struct mlx4_dev *dev, int port);
|
||||
|
||||
int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]);
|
||||
int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
|
||||
int block_mcast_loopback);
|
||||
int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16]);
|
||||
|
||||
int mlx4_map_phys_fmr(struct mlx4_dev *dev, struct mlx4_fmr *fmr, u64 *page_list,
|
||||
|
||||
+24
-19
@@ -2,29 +2,33 @@
|
||||
* Copyright (c) 2005 Voltaire Inc. All rights reserved.
|
||||
* Copyright (c) 2005 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* This Software is licensed under one of the following licenses:
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* 1) under the terms of the "Common Public License 1.0" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/cpl.php.
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 2) under the terms of the "The BSD License" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/bsd-license.php.
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* 3) under the terms of the "GNU General Public License (GPL) Version 2" a
|
||||
* copy of which is available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/gpl-license.php.
|
||||
*
|
||||
* Licensee has the right to choose one of the above licenses.
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice and one of the license notices.
|
||||
*
|
||||
* Redistributions in binary form must reproduce both the above copyright
|
||||
* notice, one of the license notices in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#if !defined(IB_ADDR_H)
|
||||
@@ -57,6 +61,7 @@ struct rdma_dev_addr {
|
||||
unsigned char dst_dev_addr[MAX_ADDR_LEN];
|
||||
unsigned char broadcast[MAX_ADDR_LEN];
|
||||
enum rdma_node_type dev_type;
|
||||
struct net_device *src_dev;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_cache.h 1349 2004-12-16 21:09:43Z roland $
|
||||
*/
|
||||
|
||||
#ifndef _IB_CACHE_H
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_cm.h 4311 2005-12-05 18:42:01Z sean.hefty $
|
||||
*/
|
||||
#if !defined(IB_CM_H)
|
||||
#define IB_CM_H
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_fmr_pool.h 2730 2005-06-28 16:43:03Z sean.hefty $
|
||||
*/
|
||||
|
||||
#if !defined(IB_FMR_POOL_H)
|
||||
@@ -61,7 +59,7 @@ struct ib_fmr_pool_param {
|
||||
int pool_size;
|
||||
int dirty_watermark;
|
||||
void (*flush_function)(struct ib_fmr_pool *pool,
|
||||
void * arg);
|
||||
void *arg);
|
||||
void *flush_arg;
|
||||
unsigned cache:1;
|
||||
};
|
||||
|
||||
+7
-10
@@ -32,11 +32,9 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_mad.h 5596 2006-03-03 01:00:07Z sean.hefty $
|
||||
*/
|
||||
|
||||
#if !defined( IB_MAD_H )
|
||||
#if !defined(IB_MAD_H)
|
||||
#define IB_MAD_H
|
||||
|
||||
#include <linux/list.h>
|
||||
@@ -194,8 +192,7 @@ struct ib_vendor_mad {
|
||||
u8 data[IB_MGMT_VENDOR_DATA];
|
||||
};
|
||||
|
||||
struct ib_class_port_info
|
||||
{
|
||||
struct ib_class_port_info {
|
||||
u8 base_version;
|
||||
u8 class_version;
|
||||
__be16 capability_mask;
|
||||
@@ -614,11 +611,11 @@ int ib_process_mad_wc(struct ib_mad_agent *mad_agent,
|
||||
* any class specific header, and MAD data area.
|
||||
* If @rmpp_active is set, the RMPP header will be initialized for sending.
|
||||
*/
|
||||
struct ib_mad_send_buf * ib_create_send_mad(struct ib_mad_agent *mad_agent,
|
||||
u32 remote_qpn, u16 pkey_index,
|
||||
int rmpp_active,
|
||||
int hdr_len, int data_len,
|
||||
gfp_t gfp_mask);
|
||||
struct ib_mad_send_buf *ib_create_send_mad(struct ib_mad_agent *mad_agent,
|
||||
u32 remote_qpn, u16 pkey_index,
|
||||
int rmpp_active,
|
||||
int hdr_len, int data_len,
|
||||
gfp_t gfp_mask);
|
||||
|
||||
/**
|
||||
* ib_is_mad_class_rmpp - returns whether given management class
|
||||
|
||||
@@ -28,8 +28,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_pack.h 1349 2004-12-16 21:09:43Z roland $
|
||||
*/
|
||||
|
||||
#ifndef IB_PACK_H
|
||||
|
||||
@@ -30,8 +30,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_sa.h 2811 2005-07-06 18:11:43Z halr $
|
||||
*/
|
||||
|
||||
#ifndef IB_SA_H
|
||||
|
||||
@@ -32,11 +32,9 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_smi.h 1389 2004-12-27 22:56:47Z roland $
|
||||
*/
|
||||
|
||||
#if !defined( IB_SMI_H )
|
||||
#if !defined(IB_SMI_H)
|
||||
#define IB_SMI_H
|
||||
|
||||
#include <rdma/ib_mad.h>
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_user_cm.h 4019 2005-11-11 00:33:09Z sean.hefty $
|
||||
*/
|
||||
|
||||
#ifndef IB_USER_CM_H
|
||||
|
||||
@@ -29,8 +29,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_user_mad.h 2814 2005-07-06 19:14:09Z halr $
|
||||
*/
|
||||
|
||||
#ifndef IB_USER_MAD_H
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_user_verbs.h 4019 2005-11-11 00:33:09Z sean.hefty $
|
||||
*/
|
||||
|
||||
#ifndef IB_USER_VERBS_H
|
||||
@@ -291,7 +289,10 @@ struct ib_uverbs_wc {
|
||||
__u32 opcode;
|
||||
__u32 vendor_err;
|
||||
__u32 byte_len;
|
||||
__u32 imm_data;
|
||||
union {
|
||||
__u32 imm_data;
|
||||
__u32 invalidate_rkey;
|
||||
} ex;
|
||||
__u32 qp_num;
|
||||
__u32 src_qp;
|
||||
__u32 wc_flags;
|
||||
|
||||
+141
-8
@@ -34,8 +34,6 @@
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* $Id: ib_verbs.h 1349 2004-12-16 21:09:43Z roland $
|
||||
*/
|
||||
|
||||
#if !defined(IB_VERBS_H)
|
||||
@@ -93,7 +91,7 @@ enum ib_device_cap_flags {
|
||||
IB_DEVICE_RC_RNR_NAK_GEN = (1<<12),
|
||||
IB_DEVICE_SRQ_RESIZE = (1<<13),
|
||||
IB_DEVICE_N_NOTIFY_CQ = (1<<14),
|
||||
IB_DEVICE_ZERO_STAG = (1<<15),
|
||||
IB_DEVICE_LOCAL_DMA_LKEY = (1<<15),
|
||||
IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */
|
||||
IB_DEVICE_MEM_WINDOW = (1<<17),
|
||||
/*
|
||||
@@ -105,6 +103,8 @@ enum ib_device_cap_flags {
|
||||
*/
|
||||
IB_DEVICE_UD_IP_CSUM = (1<<18),
|
||||
IB_DEVICE_UD_TSO = (1<<19),
|
||||
IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21),
|
||||
IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22),
|
||||
};
|
||||
|
||||
enum ib_atomic_cap {
|
||||
@@ -150,6 +150,7 @@ struct ib_device_attr {
|
||||
int max_srq;
|
||||
int max_srq_wr;
|
||||
int max_srq_sge;
|
||||
unsigned int max_fast_reg_page_list_len;
|
||||
u16 max_pkeys;
|
||||
u8 local_ca_ack_delay;
|
||||
};
|
||||
@@ -226,6 +227,57 @@ static inline int ib_width_enum_to_int(enum ib_port_width width)
|
||||
}
|
||||
}
|
||||
|
||||
struct ib_protocol_stats {
|
||||
/* TBD... */
|
||||
};
|
||||
|
||||
struct iw_protocol_stats {
|
||||
u64 ipInReceives;
|
||||
u64 ipInHdrErrors;
|
||||
u64 ipInTooBigErrors;
|
||||
u64 ipInNoRoutes;
|
||||
u64 ipInAddrErrors;
|
||||
u64 ipInUnknownProtos;
|
||||
u64 ipInTruncatedPkts;
|
||||
u64 ipInDiscards;
|
||||
u64 ipInDelivers;
|
||||
u64 ipOutForwDatagrams;
|
||||
u64 ipOutRequests;
|
||||
u64 ipOutDiscards;
|
||||
u64 ipOutNoRoutes;
|
||||
u64 ipReasmTimeout;
|
||||
u64 ipReasmReqds;
|
||||
u64 ipReasmOKs;
|
||||
u64 ipReasmFails;
|
||||
u64 ipFragOKs;
|
||||
u64 ipFragFails;
|
||||
u64 ipFragCreates;
|
||||
u64 ipInMcastPkts;
|
||||
u64 ipOutMcastPkts;
|
||||
u64 ipInBcastPkts;
|
||||
u64 ipOutBcastPkts;
|
||||
|
||||
u64 tcpRtoAlgorithm;
|
||||
u64 tcpRtoMin;
|
||||
u64 tcpRtoMax;
|
||||
u64 tcpMaxConn;
|
||||
u64 tcpActiveOpens;
|
||||
u64 tcpPassiveOpens;
|
||||
u64 tcpAttemptFails;
|
||||
u64 tcpEstabResets;
|
||||
u64 tcpCurrEstab;
|
||||
u64 tcpInSegs;
|
||||
u64 tcpOutSegs;
|
||||
u64 tcpRetransSegs;
|
||||
u64 tcpInErrs;
|
||||
u64 tcpOutRsts;
|
||||
};
|
||||
|
||||
union rdma_protocol_stats {
|
||||
struct ib_protocol_stats ib;
|
||||
struct iw_protocol_stats iw;
|
||||
};
|
||||
|
||||
struct ib_port_attr {
|
||||
enum ib_port_state state;
|
||||
enum ib_mtu max_mtu;
|
||||
@@ -413,6 +465,8 @@ enum ib_wc_opcode {
|
||||
IB_WC_FETCH_ADD,
|
||||
IB_WC_BIND_MW,
|
||||
IB_WC_LSO,
|
||||
IB_WC_LOCAL_INV,
|
||||
IB_WC_FAST_REG_MR,
|
||||
/*
|
||||
* Set value of IB_WC_RECV so consumers can test if a completion is a
|
||||
* receive by testing (opcode & IB_WC_RECV).
|
||||
@@ -423,7 +477,8 @@ enum ib_wc_opcode {
|
||||
|
||||
enum ib_wc_flags {
|
||||
IB_WC_GRH = 1,
|
||||
IB_WC_WITH_IMM = (1<<1)
|
||||
IB_WC_WITH_IMM = (1<<1),
|
||||
IB_WC_WITH_INVALIDATE = (1<<2),
|
||||
};
|
||||
|
||||
struct ib_wc {
|
||||
@@ -433,7 +488,10 @@ struct ib_wc {
|
||||
u32 vendor_err;
|
||||
u32 byte_len;
|
||||
struct ib_qp *qp;
|
||||
__be32 imm_data;
|
||||
union {
|
||||
__be32 imm_data;
|
||||
u32 invalidate_rkey;
|
||||
} ex;
|
||||
u32 src_qp;
|
||||
int wc_flags;
|
||||
u16 pkey_index;
|
||||
@@ -498,7 +556,8 @@ enum ib_qp_type {
|
||||
};
|
||||
|
||||
enum ib_qp_create_flags {
|
||||
IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0,
|
||||
IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0,
|
||||
IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1,
|
||||
};
|
||||
|
||||
struct ib_qp_init_attr {
|
||||
@@ -627,6 +686,9 @@ enum ib_wr_opcode {
|
||||
IB_WR_ATOMIC_FETCH_AND_ADD,
|
||||
IB_WR_LSO,
|
||||
IB_WR_SEND_WITH_INV,
|
||||
IB_WR_RDMA_READ_WITH_INV,
|
||||
IB_WR_LOCAL_INV,
|
||||
IB_WR_FAST_REG_MR,
|
||||
};
|
||||
|
||||
enum ib_send_flags {
|
||||
@@ -643,6 +705,12 @@ struct ib_sge {
|
||||
u32 lkey;
|
||||
};
|
||||
|
||||
struct ib_fast_reg_page_list {
|
||||
struct ib_device *device;
|
||||
u64 *page_list;
|
||||
unsigned int max_page_list_len;
|
||||
};
|
||||
|
||||
struct ib_send_wr {
|
||||
struct ib_send_wr *next;
|
||||
u64 wr_id;
|
||||
@@ -675,6 +743,15 @@ struct ib_send_wr {
|
||||
u16 pkey_index; /* valid for GSI only */
|
||||
u8 port_num; /* valid for DR SMPs on switch only */
|
||||
} ud;
|
||||
struct {
|
||||
u64 iova_start;
|
||||
struct ib_fast_reg_page_list *page_list;
|
||||
unsigned int page_shift;
|
||||
unsigned int page_list_len;
|
||||
u32 length;
|
||||
int access_flags;
|
||||
u32 rkey;
|
||||
} fast_reg;
|
||||
} wr;
|
||||
};
|
||||
|
||||
@@ -777,7 +854,7 @@ struct ib_cq {
|
||||
struct ib_uobject *uobject;
|
||||
ib_comp_handler comp_handler;
|
||||
void (*event_handler)(struct ib_event *, void *);
|
||||
void * cq_context;
|
||||
void *cq_context;
|
||||
int cqe;
|
||||
atomic_t usecnt; /* count number of work queues */
|
||||
};
|
||||
@@ -883,7 +960,7 @@ struct ib_dma_mapping_ops {
|
||||
void (*sync_single_for_cpu)(struct ib_device *dev,
|
||||
u64 dma_handle,
|
||||
size_t size,
|
||||
enum dma_data_direction dir);
|
||||
enum dma_data_direction dir);
|
||||
void (*sync_single_for_device)(struct ib_device *dev,
|
||||
u64 dma_handle,
|
||||
size_t size,
|
||||
@@ -919,6 +996,8 @@ struct ib_device {
|
||||
|
||||
struct iw_cm_verbs *iwcm;
|
||||
|
||||
int (*get_protocol_stats)(struct ib_device *device,
|
||||
union rdma_protocol_stats *stats);
|
||||
int (*query_device)(struct ib_device *device,
|
||||
struct ib_device_attr *device_attr);
|
||||
int (*query_port)(struct ib_device *device,
|
||||
@@ -1013,6 +1092,11 @@ struct ib_device {
|
||||
int (*query_mr)(struct ib_mr *mr,
|
||||
struct ib_mr_attr *mr_attr);
|
||||
int (*dereg_mr)(struct ib_mr *mr);
|
||||
struct ib_mr * (*alloc_fast_reg_mr)(struct ib_pd *pd,
|
||||
int max_page_list_len);
|
||||
struct ib_fast_reg_page_list * (*alloc_fast_reg_page_list)(struct ib_device *device,
|
||||
int page_list_len);
|
||||
void (*free_fast_reg_page_list)(struct ib_fast_reg_page_list *page_list);
|
||||
int (*rereg_phys_mr)(struct ib_mr *mr,
|
||||
int mr_rereg_mask,
|
||||
struct ib_pd *pd,
|
||||
@@ -1065,6 +1149,7 @@ struct ib_device {
|
||||
|
||||
char node_desc[64];
|
||||
__be64 node_guid;
|
||||
u32 local_dma_lkey;
|
||||
u8 node_type;
|
||||
u8 phys_port_cnt;
|
||||
};
|
||||
@@ -1806,6 +1891,54 @@ int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr);
|
||||
*/
|
||||
int ib_dereg_mr(struct ib_mr *mr);
|
||||
|
||||
/**
|
||||
* ib_alloc_fast_reg_mr - Allocates memory region usable with the
|
||||
* IB_WR_FAST_REG_MR send work request.
|
||||
* @pd: The protection domain associated with the region.
|
||||
* @max_page_list_len: requested max physical buffer list length to be
|
||||
* used with fast register work requests for this MR.
|
||||
*/
|
||||
struct ib_mr *ib_alloc_fast_reg_mr(struct ib_pd *pd, int max_page_list_len);
|
||||
|
||||
/**
|
||||
* ib_alloc_fast_reg_page_list - Allocates a page list array
|
||||
* @device - ib device pointer.
|
||||
* @page_list_len - size of the page list array to be allocated.
|
||||
*
|
||||
* This allocates and returns a struct ib_fast_reg_page_list * and a
|
||||
* page_list array that is at least page_list_len in size. The actual
|
||||
* size is returned in max_page_list_len. The caller is responsible
|
||||
* for initializing the contents of the page_list array before posting
|
||||
* a send work request with the IB_WC_FAST_REG_MR opcode.
|
||||
*
|
||||
* The page_list array entries must be translated using one of the
|
||||
* ib_dma_*() functions just like the addresses passed to
|
||||
* ib_map_phys_fmr(). Once the ib_post_send() is issued, the struct
|
||||
* ib_fast_reg_page_list must not be modified by the caller until the
|
||||
* IB_WC_FAST_REG_MR work request completes.
|
||||
*/
|
||||
struct ib_fast_reg_page_list *ib_alloc_fast_reg_page_list(
|
||||
struct ib_device *device, int page_list_len);
|
||||
|
||||
/**
|
||||
* ib_free_fast_reg_page_list - Deallocates a previously allocated
|
||||
* page list array.
|
||||
* @page_list - struct ib_fast_reg_page_list pointer to be deallocated.
|
||||
*/
|
||||
void ib_free_fast_reg_page_list(struct ib_fast_reg_page_list *page_list);
|
||||
|
||||
/**
|
||||
* ib_update_fast_reg_key - updates the key portion of the fast_reg MR
|
||||
* R_Key and L_Key.
|
||||
* @mr - struct ib_mr pointer to be updated.
|
||||
* @newkey - new key to be used.
|
||||
*/
|
||||
static inline void ib_update_fast_reg_key(struct ib_mr *mr, u8 newkey)
|
||||
{
|
||||
mr->lkey = (mr->lkey & 0xffffff00) | newkey;
|
||||
mr->rkey = (mr->rkey & 0xffffff00) | newkey;
|
||||
}
|
||||
|
||||
/**
|
||||
* ib_alloc_mw - Allocates a memory window.
|
||||
* @pd: The protection domain associated with the memory window.
|
||||
|
||||
@@ -62,7 +62,7 @@ struct iw_cm_event {
|
||||
struct sockaddr_in remote_addr;
|
||||
void *private_data;
|
||||
u8 private_data_len;
|
||||
void* provider_data;
|
||||
void *provider_data;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
+28
-24
@@ -2,29 +2,33 @@
|
||||
* Copyright (c) 2005 Voltaire Inc. All rights reserved.
|
||||
* Copyright (c) 2005 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* This Software is licensed under one of the following licenses:
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* 1) under the terms of the "Common Public License 1.0" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/cpl.php.
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 2) under the terms of the "The BSD License" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/bsd-license.php.
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* 3) under the terms of the "GNU General Public License (GPL) Version 2" a
|
||||
* copy of which is available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/gpl-license.php.
|
||||
*
|
||||
* Licensee has the right to choose one of the above licenses.
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice and one of the license notices.
|
||||
*
|
||||
* Redistributions in binary form must reproduce both the above copyright
|
||||
* notice, one of the license notices in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#if !defined(RDMA_CM_H)
|
||||
@@ -57,11 +61,11 @@ enum rdma_cm_event_type {
|
||||
};
|
||||
|
||||
enum rdma_port_space {
|
||||
RDMA_PS_SDP = 0x0001,
|
||||
RDMA_PS_IPOIB= 0x0002,
|
||||
RDMA_PS_TCP = 0x0106,
|
||||
RDMA_PS_UDP = 0x0111,
|
||||
RDMA_PS_SCTP = 0x0183
|
||||
RDMA_PS_SDP = 0x0001,
|
||||
RDMA_PS_IPOIB = 0x0002,
|
||||
RDMA_PS_TCP = 0x0106,
|
||||
RDMA_PS_UDP = 0x0111,
|
||||
RDMA_PS_SCTP = 0x0183
|
||||
};
|
||||
|
||||
struct rdma_addr {
|
||||
|
||||
+23
-19
@@ -1,29 +1,33 @@
|
||||
/*
|
||||
* Copyright (c) 2006 Intel Corporation. All rights reserved.
|
||||
*
|
||||
* This Software is licensed under one of the following licenses:
|
||||
* This software is available to you under a choice of one of two
|
||||
* licenses. You may choose to be licensed under the terms of the GNU
|
||||
* General Public License (GPL) Version 2, available from the file
|
||||
* COPYING in the main directory of this source tree, or the
|
||||
* OpenIB.org BSD license below:
|
||||
*
|
||||
* 1) under the terms of the "Common Public License 1.0" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/cpl.php.
|
||||
* Redistribution and use in source and binary forms, with or
|
||||
* without modification, are permitted provided that the following
|
||||
* conditions are met:
|
||||
*
|
||||
* 2) under the terms of the "The BSD License" a copy of which is
|
||||
* available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/bsd-license.php.
|
||||
* - Redistributions of source code must retain the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* 3) under the terms of the "GNU General Public License (GPL) Version 2" a
|
||||
* copy of which is available from the Open Source Initiative, see
|
||||
* http://www.opensource.org/licenses/gpl-license.php.
|
||||
*
|
||||
* Licensee has the right to choose one of the above licenses.
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright
|
||||
* notice and one of the license notices.
|
||||
*
|
||||
* Redistributions in binary form must reproduce both the above copyright
|
||||
* notice, one of the license notices in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* - Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials
|
||||
* provided with the distribution.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
|
||||
#if !defined(RDMA_CM_IB_H)
|
||||
|
||||
Reference in New Issue
Block a user