Merge branches 'amso1100', 'cma', 'cxgb3', 'ehca', 'ipath', 'ipoib', 'iser', 'misc', 'mlx4' and 'nes' into for-next
This commit is contained in:

@@ -36,6 +36,7 @@
|
||||
|
||||
#include <linux/in.h>
|
||||
#include <linux/in6.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/socket.h>
|
||||
#include <rdma/ib_verbs.h>
|
||||
@@ -60,8 +61,8 @@ struct rdma_dev_addr {
|
||||
unsigned char src_dev_addr[MAX_ADDR_LEN];
|
||||
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;
|
||||
unsigned short dev_type;
|
||||
int bound_dev_if;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -121,40 +122,29 @@ static inline void ib_addr_get_mgid(struct rdma_dev_addr *dev_addr,
|
||||
memcpy(gid, dev_addr->broadcast + 4, sizeof *gid);
|
||||
}
|
||||
|
||||
static inline void ib_addr_get_sgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
static inline int rdma_addr_gid_offset(struct rdma_dev_addr *dev_addr)
|
||||
{
|
||||
memcpy(gid, dev_addr->src_dev_addr + 4, sizeof *gid);
|
||||
return dev_addr->dev_type == ARPHRD_INFINIBAND ? 4 : 0;
|
||||
}
|
||||
|
||||
static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
static inline void rdma_addr_get_sgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
|
||||
{
|
||||
memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid);
|
||||
memcpy(gid, dev_addr->src_dev_addr + rdma_addr_gid_offset(dev_addr), sizeof *gid);
|
||||
}
|
||||
|
||||
static inline void ib_addr_get_dgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
static inline void rdma_addr_set_sgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
|
||||
{
|
||||
memcpy(gid, dev_addr->dst_dev_addr + 4, sizeof *gid);
|
||||
memcpy(dev_addr->src_dev_addr + rdma_addr_gid_offset(dev_addr), gid, sizeof *gid);
|
||||
}
|
||||
|
||||
static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
static inline void rdma_addr_get_dgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
|
||||
{
|
||||
memcpy(dev_addr->dst_dev_addr + 4, gid, sizeof *gid);
|
||||
memcpy(gid, dev_addr->dst_dev_addr + rdma_addr_gid_offset(dev_addr), sizeof *gid);
|
||||
}
|
||||
|
||||
static inline void iw_addr_get_sgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
static inline void rdma_addr_set_dgid(struct rdma_dev_addr *dev_addr, union ib_gid *gid)
|
||||
{
|
||||
memcpy(gid, dev_addr->src_dev_addr, sizeof *gid);
|
||||
}
|
||||
|
||||
static inline void iw_addr_get_dgid(struct rdma_dev_addr *dev_addr,
|
||||
union ib_gid *gid)
|
||||
{
|
||||
memcpy(gid, dev_addr->dst_dev_addr, sizeof *gid);
|
||||
memcpy(dev_addr->dst_dev_addr + rdma_addr_gid_offset(dev_addr), gid, sizeof *gid);
|
||||
}
|
||||
|
||||
#endif /* IB_ADDR_H */
|
||||
|
@@ -379,4 +379,10 @@ int ib_init_ah_from_path(struct ib_device *device, u8 port_num,
|
||||
struct ib_sa_path_rec *rec,
|
||||
struct ib_ah_attr *ah_attr);
|
||||
|
||||
/**
|
||||
* ib_sa_unpack_path - Convert a path record from MAD format to struct
|
||||
* ib_sa_path_rec.
|
||||
*/
|
||||
void ib_sa_unpack_path(void *attribute, struct ib_sa_path_rec *rec);
|
||||
|
||||
#endif /* IB_SA_H */
|
||||
|
@@ -35,6 +35,22 @@
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
enum {
|
||||
IB_PATH_GMP = 1,
|
||||
IB_PATH_PRIMARY = (1<<1),
|
||||
IB_PATH_ALTERNATE = (1<<2),
|
||||
IB_PATH_OUTBOUND = (1<<3),
|
||||
IB_PATH_INBOUND = (1<<4),
|
||||
IB_PATH_INBOUND_REVERSE = (1<<5),
|
||||
IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
|
||||
};
|
||||
|
||||
struct ib_path_rec_data {
|
||||
__u32 flags;
|
||||
__u32 reserved;
|
||||
__u32 path_rec[16];
|
||||
};
|
||||
|
||||
struct ib_user_path_rec {
|
||||
__u8 dgid[16];
|
||||
__u8 sgid[16];
|
||||
|
@@ -1425,6 +1425,11 @@ int ib_destroy_qp(struct ib_qp *qp);
|
||||
* @send_wr: A list of work requests to post on the send queue.
|
||||
* @bad_send_wr: On an immediate failure, this parameter will reference
|
||||
* the work request that failed to be posted on the QP.
|
||||
*
|
||||
* While IBA Vol. 1 section 11.4.1.1 specifies that if an immediate
|
||||
* error is returned, the QP state shall not be affected,
|
||||
* ib_post_send() will return an immediate error after queueing any
|
||||
* earlier work requests in the list.
|
||||
*/
|
||||
static inline int ib_post_send(struct ib_qp *qp,
|
||||
struct ib_send_wr *send_wr,
|
||||
|
@@ -215,12 +215,14 @@ struct rdma_ucm_event_resp {
|
||||
|
||||
/* Option levels */
|
||||
enum {
|
||||
RDMA_OPTION_ID = 0
|
||||
RDMA_OPTION_ID = 0,
|
||||
RDMA_OPTION_IB = 1
|
||||
};
|
||||
|
||||
/* Option details */
|
||||
enum {
|
||||
RDMA_OPTION_ID_TOS = 0
|
||||
RDMA_OPTION_ID_TOS = 0,
|
||||
RDMA_OPTION_IB_PATH = 1
|
||||
};
|
||||
|
||||
struct rdma_ucm_set_option {
|
||||
|
Reference in New Issue
Block a user