diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 11:20:06 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-18 11:20:06 -0400 |
| commit | 75e98b34155264d943aa53edce465e87f3ccbadf (patch) | |
| tree | 08d100a14ab9f5314c393286ce8c5436ef387d75 /include/linux | |
| parent | 30bc94566e396b432b72e2f3518e19225dc2672d (diff) | |
| parent | 0a22ab92f51478796d5f3997f4f5922409c98b10 (diff) | |
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
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mlx4/cmd.h | 2 | ||||
| -rw-r--r-- | include/linux/mlx4/cq.h | 19 | ||||
| -rw-r--r-- | include/linux/mlx4/device.h | 1 | ||||
| -rw-r--r-- | include/linux/mlx4/driver.h | 3 | ||||
| -rw-r--r-- | include/linux/mlx4/qp.h | 15 |
5 files changed, 31 insertions, 9 deletions
diff --git a/include/linux/mlx4/cmd.h b/include/linux/mlx4/cmd.h index 7d1eaa97de13..77323a72dd3c 100644 --- a/include/linux/mlx4/cmd.h +++ b/include/linux/mlx4/cmd.h | |||
| @@ -81,7 +81,7 @@ enum { | |||
| 81 | MLX4_CMD_SW2HW_CQ = 0x16, | 81 | MLX4_CMD_SW2HW_CQ = 0x16, |
| 82 | MLX4_CMD_HW2SW_CQ = 0x17, | 82 | MLX4_CMD_HW2SW_CQ = 0x17, |
| 83 | MLX4_CMD_QUERY_CQ = 0x18, | 83 | MLX4_CMD_QUERY_CQ = 0x18, |
| 84 | MLX4_CMD_RESIZE_CQ = 0x2c, | 84 | MLX4_CMD_MODIFY_CQ = 0x2c, |
| 85 | 85 | ||
| 86 | /* SRQ commands */ | 86 | /* SRQ commands */ |
| 87 | MLX4_CMD_SW2HW_SRQ = 0x35, | 87 | MLX4_CMD_SW2HW_SRQ = 0x35, |
diff --git a/include/linux/mlx4/cq.h b/include/linux/mlx4/cq.h index 0181e0a57cbf..071cf96cf01f 100644 --- a/include/linux/mlx4/cq.h +++ b/include/linux/mlx4/cq.h | |||
| @@ -45,11 +45,11 @@ struct mlx4_cqe { | |||
| 45 | u8 sl; | 45 | u8 sl; |
| 46 | u8 reserved1; | 46 | u8 reserved1; |
| 47 | __be16 rlid; | 47 | __be16 rlid; |
| 48 | u32 reserved2; | 48 | __be32 ipoib_status; |
| 49 | __be32 byte_cnt; | 49 | __be32 byte_cnt; |
| 50 | __be16 wqe_index; | 50 | __be16 wqe_index; |
| 51 | __be16 checksum; | 51 | __be16 checksum; |
| 52 | u8 reserved3[3]; | 52 | u8 reserved2[3]; |
| 53 | u8 owner_sr_opcode; | 53 | u8 owner_sr_opcode; |
| 54 | }; | 54 | }; |
| 55 | 55 | ||
| @@ -85,6 +85,16 @@ enum { | |||
| 85 | MLX4_CQE_SYNDROME_REMOTE_ABORTED_ERR = 0x22, | 85 | MLX4_CQE_SYNDROME_REMOTE_ABORTED_ERR = 0x22, |
| 86 | }; | 86 | }; |
| 87 | 87 | ||
| 88 | enum { | ||
| 89 | MLX4_CQE_IPOIB_STATUS_IPV4 = 1 << 22, | ||
| 90 | MLX4_CQE_IPOIB_STATUS_IPV4F = 1 << 23, | ||
| 91 | MLX4_CQE_IPOIB_STATUS_IPV6 = 1 << 24, | ||
| 92 | MLX4_CQE_IPOIB_STATUS_IPV4OPT = 1 << 25, | ||
| 93 | MLX4_CQE_IPOIB_STATUS_TCP = 1 << 26, | ||
| 94 | MLX4_CQE_IPOIB_STATUS_UDP = 1 << 27, | ||
| 95 | MLX4_CQE_IPOIB_STATUS_IPOK = 1 << 28, | ||
| 96 | }; | ||
| 97 | |||
| 88 | static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd, | 98 | static inline void mlx4_cq_arm(struct mlx4_cq *cq, u32 cmd, |
| 89 | void __iomem *uar_page, | 99 | void __iomem *uar_page, |
| 90 | spinlock_t *doorbell_lock) | 100 | spinlock_t *doorbell_lock) |
| @@ -120,4 +130,9 @@ enum { | |||
| 120 | MLX4_CQ_DB_REQ_NOT = 2 << 24 | 130 | MLX4_CQ_DB_REQ_NOT = 2 << 24 |
| 121 | }; | 131 | }; |
| 122 | 132 | ||
| 133 | int mlx4_cq_modify(struct mlx4_dev *dev, struct mlx4_cq *cq, | ||
| 134 | u16 count, u16 period); | ||
| 135 | int mlx4_cq_resize(struct mlx4_dev *dev, struct mlx4_cq *cq, | ||
| 136 | int entries, struct mlx4_mtt *mtt); | ||
| 137 | |||
| 123 | #endif /* MLX4_CQ_H */ | 138 | #endif /* MLX4_CQ_H */ |
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 6cdf813cd478..ff7df1a2222f 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
| @@ -186,6 +186,7 @@ struct mlx4_caps { | |||
| 186 | u32 flags; | 186 | u32 flags; |
| 187 | u16 stat_rate_support; | 187 | u16 stat_rate_support; |
| 188 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; | 188 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; |
| 189 | int max_gso_sz; | ||
| 189 | }; | 190 | }; |
| 190 | 191 | ||
| 191 | struct mlx4_buf_list { | 192 | struct mlx4_buf_list { |
diff --git a/include/linux/mlx4/driver.h b/include/linux/mlx4/driver.h index 1b835ca49df1..53c5fdb6eac4 100644 --- a/include/linux/mlx4/driver.h +++ b/include/linux/mlx4/driver.h | |||
| @@ -48,8 +48,7 @@ struct mlx4_interface { | |||
| 48 | void * (*add) (struct mlx4_dev *dev); | 48 | void * (*add) (struct mlx4_dev *dev); |
| 49 | void (*remove)(struct mlx4_dev *dev, void *context); | 49 | void (*remove)(struct mlx4_dev *dev, void *context); |
| 50 | void (*event) (struct mlx4_dev *dev, void *context, | 50 | void (*event) (struct mlx4_dev *dev, void *context, |
| 51 | enum mlx4_dev_event event, int subtype, | 51 | enum mlx4_dev_event event, int port); |
| 52 | int port); | ||
| 53 | struct list_head list; | 52 | struct list_head list; |
| 54 | }; | 53 | }; |
| 55 | 54 | ||
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 09a2230923f2..a5e43febee4f 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
| @@ -158,10 +158,12 @@ struct mlx4_qp_context { | |||
| 158 | #define MLX4_FW_VER_WQE_CTRL_NEC mlx4_fw_ver(2, 2, 232) | 158 | #define MLX4_FW_VER_WQE_CTRL_NEC mlx4_fw_ver(2, 2, 232) |
| 159 | 159 | ||
| 160 | enum { | 160 | enum { |
| 161 | MLX4_WQE_CTRL_NEC = 1 << 29, | 161 | MLX4_WQE_CTRL_NEC = 1 << 29, |
| 162 | MLX4_WQE_CTRL_FENCE = 1 << 6, | 162 | MLX4_WQE_CTRL_FENCE = 1 << 6, |
| 163 | MLX4_WQE_CTRL_CQ_UPDATE = 3 << 2, | 163 | MLX4_WQE_CTRL_CQ_UPDATE = 3 << 2, |
| 164 | MLX4_WQE_CTRL_SOLICITED = 1 << 1, | 164 | MLX4_WQE_CTRL_SOLICITED = 1 << 1, |
| 165 | MLX4_WQE_CTRL_IP_CSUM = 1 << 4, | ||
| 166 | MLX4_WQE_CTRL_TCP_UDP_CSUM = 1 << 5, | ||
| 165 | }; | 167 | }; |
| 166 | 168 | ||
| 167 | struct mlx4_wqe_ctrl_seg { | 169 | struct mlx4_wqe_ctrl_seg { |
| @@ -217,6 +219,11 @@ struct mlx4_wqe_datagram_seg { | |||
| 217 | __be32 reservd[2]; | 219 | __be32 reservd[2]; |
| 218 | }; | 220 | }; |
| 219 | 221 | ||
| 222 | struct mlx4_lso_seg { | ||
| 223 | __be32 mss_hdr_size; | ||
| 224 | __be32 header[0]; | ||
| 225 | }; | ||
| 226 | |||
| 220 | struct mlx4_wqe_bind_seg { | 227 | struct mlx4_wqe_bind_seg { |
| 221 | __be32 flags1; | 228 | __be32 flags1; |
| 222 | __be32 flags2; | 229 | __be32 flags2; |
