Merge branches 'cxgb4-4.8', 'mlx5-4.8' and 'fw-version' into k.o/for-4.8
This commit is contained in:
@@ -562,6 +562,7 @@ enum ib_event_type {
|
||||
IB_EVENT_QP_LAST_WQE_REACHED,
|
||||
IB_EVENT_CLIENT_REREGISTER,
|
||||
IB_EVENT_GID_CHANGE,
|
||||
IB_EVENT_WQ_FATAL,
|
||||
};
|
||||
|
||||
const char *__attribute_const__ ib_event_msg(enum ib_event_type event);
|
||||
@@ -572,6 +573,7 @@ struct ib_event {
|
||||
struct ib_cq *cq;
|
||||
struct ib_qp *qp;
|
||||
struct ib_srq *srq;
|
||||
struct ib_wq *wq;
|
||||
u8 port_num;
|
||||
} element;
|
||||
enum ib_event_type event;
|
||||
@@ -1015,6 +1017,7 @@ struct ib_qp_init_attr {
|
||||
* Only needed for special QP types, or when using the RW API.
|
||||
*/
|
||||
u8 port_num;
|
||||
struct ib_rwq_ind_table *rwq_ind_tbl;
|
||||
};
|
||||
|
||||
struct ib_qp_open_attr {
|
||||
@@ -1323,6 +1326,8 @@ struct ib_ucontext {
|
||||
struct list_head ah_list;
|
||||
struct list_head xrcd_list;
|
||||
struct list_head rule_list;
|
||||
struct list_head wq_list;
|
||||
struct list_head rwq_ind_tbl_list;
|
||||
int closing;
|
||||
|
||||
struct pid *tgid;
|
||||
@@ -1428,6 +1433,63 @@ struct ib_srq {
|
||||
} ext;
|
||||
};
|
||||
|
||||
enum ib_wq_type {
|
||||
IB_WQT_RQ
|
||||
};
|
||||
|
||||
enum ib_wq_state {
|
||||
IB_WQS_RESET,
|
||||
IB_WQS_RDY,
|
||||
IB_WQS_ERR
|
||||
};
|
||||
|
||||
struct ib_wq {
|
||||
struct ib_device *device;
|
||||
struct ib_uobject *uobject;
|
||||
void *wq_context;
|
||||
void (*event_handler)(struct ib_event *, void *);
|
||||
struct ib_pd *pd;
|
||||
struct ib_cq *cq;
|
||||
u32 wq_num;
|
||||
enum ib_wq_state state;
|
||||
enum ib_wq_type wq_type;
|
||||
atomic_t usecnt;
|
||||
};
|
||||
|
||||
struct ib_wq_init_attr {
|
||||
void *wq_context;
|
||||
enum ib_wq_type wq_type;
|
||||
u32 max_wr;
|
||||
u32 max_sge;
|
||||
struct ib_cq *cq;
|
||||
void (*event_handler)(struct ib_event *, void *);
|
||||
};
|
||||
|
||||
enum ib_wq_attr_mask {
|
||||
IB_WQ_STATE = 1 << 0,
|
||||
IB_WQ_CUR_STATE = 1 << 1,
|
||||
};
|
||||
|
||||
struct ib_wq_attr {
|
||||
enum ib_wq_state wq_state;
|
||||
enum ib_wq_state curr_wq_state;
|
||||
};
|
||||
|
||||
struct ib_rwq_ind_table {
|
||||
struct ib_device *device;
|
||||
struct ib_uobject *uobject;
|
||||
atomic_t usecnt;
|
||||
u32 ind_tbl_num;
|
||||
u32 log_ind_tbl_size;
|
||||
struct ib_wq **ind_tbl;
|
||||
};
|
||||
|
||||
struct ib_rwq_ind_table_init_attr {
|
||||
u32 log_ind_tbl_size;
|
||||
/* Each entry is a pointer to Receive Work Queue */
|
||||
struct ib_wq **ind_tbl;
|
||||
};
|
||||
|
||||
struct ib_qp {
|
||||
struct ib_device *device;
|
||||
struct ib_pd *pd;
|
||||
@@ -1450,6 +1512,7 @@ struct ib_qp {
|
||||
void *qp_context;
|
||||
u32 qp_num;
|
||||
enum ib_qp_type qp_type;
|
||||
struct ib_rwq_ind_table *rwq_ind_tbl;
|
||||
};
|
||||
|
||||
struct ib_mr {
|
||||
@@ -1506,6 +1569,7 @@ enum ib_flow_spec_type {
|
||||
IB_FLOW_SPEC_IB = 0x22,
|
||||
/* L3 header*/
|
||||
IB_FLOW_SPEC_IPV4 = 0x30,
|
||||
IB_FLOW_SPEC_IPV6 = 0x31,
|
||||
/* L4 headers*/
|
||||
IB_FLOW_SPEC_TCP = 0x40,
|
||||
IB_FLOW_SPEC_UDP = 0x41
|
||||
@@ -1567,6 +1631,18 @@ struct ib_flow_spec_ipv4 {
|
||||
struct ib_flow_ipv4_filter mask;
|
||||
};
|
||||
|
||||
struct ib_flow_ipv6_filter {
|
||||
u8 src_ip[16];
|
||||
u8 dst_ip[16];
|
||||
};
|
||||
|
||||
struct ib_flow_spec_ipv6 {
|
||||
enum ib_flow_spec_type type;
|
||||
u16 size;
|
||||
struct ib_flow_ipv6_filter val;
|
||||
struct ib_flow_ipv6_filter mask;
|
||||
};
|
||||
|
||||
struct ib_flow_tcp_udp_filter {
|
||||
__be16 dst_port;
|
||||
__be16 src_port;
|
||||
@@ -1588,6 +1664,7 @@ union ib_flow_spec {
|
||||
struct ib_flow_spec_ib ib;
|
||||
struct ib_flow_spec_ipv4 ipv4;
|
||||
struct ib_flow_spec_tcp_udp tcp_udp;
|
||||
struct ib_flow_spec_ipv6 ipv6;
|
||||
};
|
||||
|
||||
struct ib_flow_attr {
|
||||
@@ -1921,7 +1998,18 @@ struct ib_device {
|
||||
struct ifla_vf_stats *stats);
|
||||
int (*set_vf_guid)(struct ib_device *device, int vf, u8 port, u64 guid,
|
||||
int type);
|
||||
|
||||
struct ib_wq * (*create_wq)(struct ib_pd *pd,
|
||||
struct ib_wq_init_attr *init_attr,
|
||||
struct ib_udata *udata);
|
||||
int (*destroy_wq)(struct ib_wq *wq);
|
||||
int (*modify_wq)(struct ib_wq *wq,
|
||||
struct ib_wq_attr *attr,
|
||||
u32 wq_attr_mask,
|
||||
struct ib_udata *udata);
|
||||
struct ib_rwq_ind_table * (*create_rwq_ind_table)(struct ib_device *device,
|
||||
struct ib_rwq_ind_table_init_attr *init_attr,
|
||||
struct ib_udata *udata);
|
||||
int (*destroy_rwq_ind_table)(struct ib_rwq_ind_table *wq_ind_table);
|
||||
struct ib_dma_mapping_ops *dma_ops;
|
||||
|
||||
struct module *owner;
|
||||
@@ -1956,6 +2044,7 @@ struct ib_device {
|
||||
* in fast paths.
|
||||
*/
|
||||
int (*get_port_immutable)(struct ib_device *, u8, struct ib_port_immutable *);
|
||||
void (*get_dev_fw_str)(struct ib_device *, char *str, size_t str_len);
|
||||
};
|
||||
|
||||
struct ib_client {
|
||||
@@ -1991,6 +2080,8 @@ struct ib_client {
|
||||
struct ib_device *ib_alloc_device(size_t size);
|
||||
void ib_dealloc_device(struct ib_device *device);
|
||||
|
||||
void ib_get_device_fw_str(struct ib_device *device, char *str, size_t str_len);
|
||||
|
||||
int ib_register_device(struct ib_device *device,
|
||||
int (*port_callback)(struct ib_device *,
|
||||
u8, struct kobject *));
|
||||
@@ -3167,6 +3258,15 @@ int ib_check_mr_status(struct ib_mr *mr, u32 check_mask,
|
||||
struct net_device *ib_get_net_dev_by_params(struct ib_device *dev, u8 port,
|
||||
u16 pkey, const union ib_gid *gid,
|
||||
const struct sockaddr *addr);
|
||||
struct ib_wq *ib_create_wq(struct ib_pd *pd,
|
||||
struct ib_wq_init_attr *init_attr);
|
||||
int ib_destroy_wq(struct ib_wq *wq);
|
||||
int ib_modify_wq(struct ib_wq *wq, struct ib_wq_attr *attr,
|
||||
u32 wq_attr_mask);
|
||||
struct ib_rwq_ind_table *ib_create_rwq_ind_table(struct ib_device *device,
|
||||
struct ib_rwq_ind_table_init_attr*
|
||||
wq_ind_table_init_attr);
|
||||
int ib_destroy_rwq_ind_table(struct ib_rwq_ind_table *wq_ind_table);
|
||||
|
||||
int ib_map_mr_sg(struct ib_mr *mr, struct scatterlist *sg, int sg_nents,
|
||||
unsigned int *sg_offset, unsigned int page_size);
|
||||
|
Reference in New Issue
Block a user