You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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: (104 commits) IB/iser: Don't change itt endianness IB/mlx4: Update module version and release date IPoIB: Handle case when P_Key is deleted and re-added at same index IB/iser: Release connection resources on RDMA_CM_EVENT_DEVICE_REMOVAL event IB/mlx4: Fix incorrect comment IB/mlx4: Fix race when detaching a QP from a multicast group IB/ehca: Support all ibv_devinfo values in query_device() and query_port() RDMA/nes: Free IRQ before killing tasklet IB/mthca: Update module version and release date IB/mlx4: Update QP state if query QP succeeds IB/mthca: Update QP state if query QP succeeds RDMA/amso1100: Add check for NULL reply_msg in c2_intr() IB/mlx4: Add support for resizing CQs IB/mlx4: Add support for modifying CQ moderation parameters IPoIB: Support modifying IPoIB CQ event moderation IB/core: Add support for modify CQ IPoIB: Add basic ethtool support mlx4_core: Increase max number of QPs to 128K RDMA/amso1100: Add support for "send with invalidate" work requests IB/core: Add support for "send with invalidate" work requests ...
This commit is contained in:
@@ -81,7 +81,7 @@ enum {
|
||||
MLX4_CMD_SW2HW_CQ = 0x16,
|
||||
MLX4_CMD_HW2SW_CQ = 0x17,
|
||||
MLX4_CMD_QUERY_CQ = 0x18,
|
||||
MLX4_CMD_RESIZE_CQ = 0x2c,
|
||||
MLX4_CMD_MODIFY_CQ = 0x2c,
|
||||
|
||||
/* SRQ commands */
|
||||
MLX4_CMD_SW2HW_SRQ = 0x35,
|
||||
|
||||
+17
-2
@@ -45,11 +45,11 @@ struct mlx4_cqe {
|
||||
u8 sl;
|
||||
u8 reserved1;
|
||||
__be16 rlid;
|
||||
u32 reserved2;
|
||||
__be32 ipoib_status;
|
||||
__be32 byte_cnt;
|
||||
__be16 wqe_index;
|
||||
__be16 checksum;
|
||||
u8 reserved3[3];
|
||||
u8 reserved2[3];
|
||||
u8 owner_sr_opcode;
|
||||
};
|
||||
|
||||
@@ -85,6 +85,16 @@ enum {
|
||||
MLX4_CQE_SYNDROME_REMOTE_ABORTED_ERR = 0x22,
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX4_CQE_IPOIB_STATUS_IPV4 = 1 << 22,
|
||||
MLX4_CQE_IPOIB_STATUS_IPV4F = 1 << 23,
|
||||
MLX4_CQE_IPOIB_STATUS_IPV6 = 1 << 24,
|
||||
MLX4_CQE_IPOIB_STATUS_IPV4OPT = 1 << 25,
|
||||
MLX4_CQE_IPOIB_STATUS_TCP = 1 << 26,
|
||||
MLX4_CQE_IPOIB_STATUS_UDP = 1 << 27,
|
||||
MLX4_CQE_IPOIB_STATUS_IPOK = 1 << 28,
|
||||
};
|
||||
|
||||
static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd,
|
||||
void __iomem *uar_page,
|
||||
spinlock_t *doorbell_lock)
|
||||
@@ -120,4 +130,9 @@ enum {
|
||||
MLX4_CQ_DB_REQ_NOT = 2 << 24
|
||||
};
|
||||
|
||||
int mlx4_cq_modify(struct mlx4_dev *dev, struct mlx4_cq *cq,
|
||||
u16 count, u16 period);
|
||||
int mlx4_cq_resize(struct mlx4_dev *dev, struct mlx4_cq *cq,
|
||||
int entries, struct mlx4_mtt *mtt);
|
||||
|
||||
#endif /* MLX4_CQ_H */
|
||||
|
||||
@@ -186,6 +186,7 @@ struct mlx4_caps {
|
||||
u32 flags;
|
||||
u16 stat_rate_support;
|
||||
u8 port_width_cap[MLX4_MAX_PORTS + 1];
|
||||
int max_gso_sz;
|
||||
};
|
||||
|
||||
struct mlx4_buf_list {
|
||||
|
||||
@@ -48,8 +48,7 @@ struct mlx4_interface {
|
||||
void * (*add) (struct mlx4_dev *dev);
|
||||
void (*remove)(struct mlx4_dev *dev, void *context);
|
||||
void (*event) (struct mlx4_dev *dev, void *context,
|
||||
enum mlx4_dev_event event, int subtype,
|
||||
int port);
|
||||
enum mlx4_dev_event event, int port);
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
|
||||
+11
-4
@@ -158,10 +158,12 @@ struct mlx4_qp_context {
|
||||
#define MLX4_FW_VER_WQE_CTRL_NEC mlx4_fw_ver(2, 2, 232)
|
||||
|
||||
enum {
|
||||
MLX4_WQE_CTRL_NEC = 1 << 29,
|
||||
MLX4_WQE_CTRL_FENCE = 1 << 6,
|
||||
MLX4_WQE_CTRL_CQ_UPDATE = 3 << 2,
|
||||
MLX4_WQE_CTRL_SOLICITED = 1 << 1,
|
||||
MLX4_WQE_CTRL_NEC = 1 << 29,
|
||||
MLX4_WQE_CTRL_FENCE = 1 << 6,
|
||||
MLX4_WQE_CTRL_CQ_UPDATE = 3 << 2,
|
||||
MLX4_WQE_CTRL_SOLICITED = 1 << 1,
|
||||
MLX4_WQE_CTRL_IP_CSUM = 1 << 4,
|
||||
MLX4_WQE_CTRL_TCP_UDP_CSUM = 1 << 5,
|
||||
};
|
||||
|
||||
struct mlx4_wqe_ctrl_seg {
|
||||
@@ -217,6 +219,11 @@ struct mlx4_wqe_datagram_seg {
|
||||
__be32 reservd[2];
|
||||
};
|
||||
|
||||
struct mlx4_lso_seg {
|
||||
__be32 mss_hdr_size;
|
||||
__be32 header[0];
|
||||
};
|
||||
|
||||
struct mlx4_wqe_bind_seg {
|
||||
__be32 flags1;
|
||||
__be32 flags2;
|
||||
|
||||
@@ -533,7 +533,10 @@ struct ib_uverbs_send_wr {
|
||||
__u32 num_sge;
|
||||
__u32 opcode;
|
||||
__u32 send_flags;
|
||||
__u32 imm_data;
|
||||
union {
|
||||
__u32 imm_data;
|
||||
__u32 invalidate_rkey;
|
||||
} ex;
|
||||
union {
|
||||
struct {
|
||||
__u64 remote_addr;
|
||||
|
||||
+31
-4
@@ -94,7 +94,7 @@ enum ib_device_cap_flags {
|
||||
IB_DEVICE_SRQ_RESIZE = (1<<13),
|
||||
IB_DEVICE_N_NOTIFY_CQ = (1<<14),
|
||||
IB_DEVICE_ZERO_STAG = (1<<15),
|
||||
IB_DEVICE_SEND_W_INV = (1<<16),
|
||||
IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */
|
||||
IB_DEVICE_MEM_WINDOW = (1<<17),
|
||||
/*
|
||||
* Devices should set IB_DEVICE_UD_IP_SUM if they support
|
||||
@@ -104,6 +104,8 @@ enum ib_device_cap_flags {
|
||||
* IPoIB driver may set NETIF_F_IP_CSUM for datagram mode.
|
||||
*/
|
||||
IB_DEVICE_UD_IP_CSUM = (1<<18),
|
||||
IB_DEVICE_UD_TSO = (1<<19),
|
||||
IB_DEVICE_SEND_W_INV = (1<<21),
|
||||
};
|
||||
|
||||
enum ib_atomic_cap {
|
||||
@@ -411,6 +413,7 @@ enum ib_wc_opcode {
|
||||
IB_WC_COMP_SWAP,
|
||||
IB_WC_FETCH_ADD,
|
||||
IB_WC_BIND_MW,
|
||||
IB_WC_LSO,
|
||||
/*
|
||||
* Set value of IB_WC_RECV so consumers can test if a completion is a
|
||||
* receive by testing (opcode & IB_WC_RECV).
|
||||
@@ -495,6 +498,10 @@ enum ib_qp_type {
|
||||
IB_QPT_RAW_ETY
|
||||
};
|
||||
|
||||
enum ib_qp_create_flags {
|
||||
IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0,
|
||||
};
|
||||
|
||||
struct ib_qp_init_attr {
|
||||
void (*event_handler)(struct ib_event *, void *);
|
||||
void *qp_context;
|
||||
@@ -504,6 +511,7 @@ struct ib_qp_init_attr {
|
||||
struct ib_qp_cap cap;
|
||||
enum ib_sig_type sq_sig_type;
|
||||
enum ib_qp_type qp_type;
|
||||
enum ib_qp_create_flags create_flags;
|
||||
u8 port_num; /* special QP types only */
|
||||
};
|
||||
|
||||
@@ -617,7 +625,9 @@ enum ib_wr_opcode {
|
||||
IB_WR_SEND_WITH_IMM,
|
||||
IB_WR_RDMA_READ,
|
||||
IB_WR_ATOMIC_CMP_AND_SWP,
|
||||
IB_WR_ATOMIC_FETCH_AND_ADD
|
||||
IB_WR_ATOMIC_FETCH_AND_ADD,
|
||||
IB_WR_LSO,
|
||||
IB_WR_SEND_WITH_INV,
|
||||
};
|
||||
|
||||
enum ib_send_flags {
|
||||
@@ -641,7 +651,10 @@ struct ib_send_wr {
|
||||
int num_sge;
|
||||
enum ib_wr_opcode opcode;
|
||||
int send_flags;
|
||||
__be32 imm_data;
|
||||
union {
|
||||
__be32 imm_data;
|
||||
u32 invalidate_rkey;
|
||||
} ex;
|
||||
union {
|
||||
struct {
|
||||
u64 remote_addr;
|
||||
@@ -655,6 +668,9 @@ struct ib_send_wr {
|
||||
} atomic;
|
||||
struct {
|
||||
struct ib_ah *ah;
|
||||
void *header;
|
||||
int hlen;
|
||||
int mss;
|
||||
u32 remote_qpn;
|
||||
u32 remote_qkey;
|
||||
u16 pkey_index; /* valid for GSI only */
|
||||
@@ -730,7 +746,7 @@ struct ib_uobject {
|
||||
struct ib_ucontext *context; /* associated user context */
|
||||
void *object; /* containing object */
|
||||
struct list_head list; /* link to context's list */
|
||||
u32 id; /* index into kernel idr */
|
||||
int id; /* index into kernel idr */
|
||||
struct kref ref;
|
||||
struct rw_semaphore mutex; /* protects .live */
|
||||
int live;
|
||||
@@ -971,6 +987,8 @@ struct ib_device {
|
||||
int comp_vector,
|
||||
struct ib_ucontext *context,
|
||||
struct ib_udata *udata);
|
||||
int (*modify_cq)(struct ib_cq *cq, u16 cq_count,
|
||||
u16 cq_period);
|
||||
int (*destroy_cq)(struct ib_cq *cq);
|
||||
int (*resize_cq)(struct ib_cq *cq, int cqe,
|
||||
struct ib_udata *udata);
|
||||
@@ -1375,6 +1393,15 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
|
||||
*/
|
||||
int ib_resize_cq(struct ib_cq *cq, int cqe);
|
||||
|
||||
/**
|
||||
* ib_modify_cq - Modifies moderation params of the CQ
|
||||
* @cq: The CQ to modify.
|
||||
* @cq_count: number of CQEs that will trigger an event
|
||||
* @cq_period: max period of time in usec before triggering an event
|
||||
*
|
||||
*/
|
||||
int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period);
|
||||
|
||||
/**
|
||||
* ib_destroy_cq - Destroys the specified CQ.
|
||||
* @cq: The CQ to destroy.
|
||||
|
||||
Reference in New Issue
Block a user