diff options
-rw-r--r-- | drivers/infiniband/core/cma.c | 6 | ||||
-rw-r--r-- | drivers/infiniband/hw/nes/nes.c | 5 | ||||
-rw-r--r-- | drivers/infiniband/hw/nes/nes.h | 3 | ||||
-rw-r--r-- | drivers/infiniband/hw/nes/nes_verbs.c | 16 | ||||
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib.h | 4 | ||||
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_cm.c | 31 | ||||
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_main.c | 31 | ||||
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 2 |
8 files changed, 43 insertions, 55 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index 26b37603dcf1..1983adc19243 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c | |||
@@ -2648,8 +2648,8 @@ static int cma_connect_ib(struct rdma_id_private *id_priv, | |||
2648 | req.responder_resources = conn_param->responder_resources; | 2648 | req.responder_resources = conn_param->responder_resources; |
2649 | req.initiator_depth = conn_param->initiator_depth; | 2649 | req.initiator_depth = conn_param->initiator_depth; |
2650 | req.flow_control = conn_param->flow_control; | 2650 | req.flow_control = conn_param->flow_control; |
2651 | req.retry_count = conn_param->retry_count; | 2651 | req.retry_count = min_t(u8, 7, conn_param->retry_count); |
2652 | req.rnr_retry_count = conn_param->rnr_retry_count; | 2652 | req.rnr_retry_count = min_t(u8, 7, conn_param->rnr_retry_count); |
2653 | req.remote_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT; | 2653 | req.remote_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT; |
2654 | req.local_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT; | 2654 | req.local_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT; |
2655 | req.max_cm_retries = CMA_MAX_CM_RETRIES; | 2655 | req.max_cm_retries = CMA_MAX_CM_RETRIES; |
@@ -2770,7 +2770,7 @@ static int cma_accept_ib(struct rdma_id_private *id_priv, | |||
2770 | rep.initiator_depth = conn_param->initiator_depth; | 2770 | rep.initiator_depth = conn_param->initiator_depth; |
2771 | rep.failover_accepted = 0; | 2771 | rep.failover_accepted = 0; |
2772 | rep.flow_control = conn_param->flow_control; | 2772 | rep.flow_control = conn_param->flow_control; |
2773 | rep.rnr_retry_count = conn_param->rnr_retry_count; | 2773 | rep.rnr_retry_count = min_t(u8, 7, conn_param->rnr_retry_count); |
2774 | rep.srq = id_priv->srq ? 1 : 0; | 2774 | rep.srq = id_priv->srq ? 1 : 0; |
2775 | 2775 | ||
2776 | ret = ib_send_cm_rep(id_priv->cm_id.ib, &rep); | 2776 | ret = ib_send_cm_rep(id_priv->cm_id.ib, &rep); |
diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c index 7140199f562e..748db2d3e465 100644 --- a/drivers/infiniband/hw/nes/nes.c +++ b/drivers/infiniband/hw/nes/nes.c | |||
@@ -79,11 +79,6 @@ int disable_mpa_crc = 0; | |||
79 | module_param(disable_mpa_crc, int, 0644); | 79 | module_param(disable_mpa_crc, int, 0644); |
80 | MODULE_PARM_DESC(disable_mpa_crc, "Disable checking of MPA CRC"); | 80 | MODULE_PARM_DESC(disable_mpa_crc, "Disable checking of MPA CRC"); |
81 | 81 | ||
82 | unsigned int send_first = 0; | ||
83 | module_param(send_first, int, 0644); | ||
84 | MODULE_PARM_DESC(send_first, "Send RDMA Message First on Active Connection"); | ||
85 | |||
86 | |||
87 | unsigned int nes_drv_opt = NES_DRV_OPT_DISABLE_INT_MOD | NES_DRV_OPT_ENABLE_PAU; | 82 | unsigned int nes_drv_opt = NES_DRV_OPT_DISABLE_INT_MOD | NES_DRV_OPT_ENABLE_PAU; |
88 | module_param(nes_drv_opt, int, 0644); | 83 | module_param(nes_drv_opt, int, 0644); |
89 | MODULE_PARM_DESC(nes_drv_opt, "Driver option parameters"); | 84 | MODULE_PARM_DESC(nes_drv_opt, "Driver option parameters"); |
diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h index 0da62b904d00..5cac29e6bc1c 100644 --- a/drivers/infiniband/hw/nes/nes.h +++ b/drivers/infiniband/hw/nes/nes.h | |||
@@ -57,7 +57,7 @@ | |||
57 | #define QUEUE_DISCONNECTS | 57 | #define QUEUE_DISCONNECTS |
58 | 58 | ||
59 | #define DRV_NAME "iw_nes" | 59 | #define DRV_NAME "iw_nes" |
60 | #define DRV_VERSION "1.5.0.0" | 60 | #define DRV_VERSION "1.5.0.1" |
61 | #define PFX DRV_NAME ": " | 61 | #define PFX DRV_NAME ": " |
62 | 62 | ||
63 | /* | 63 | /* |
@@ -172,7 +172,6 @@ extern int interrupt_mod_interval; | |||
172 | extern int nes_if_count; | 172 | extern int nes_if_count; |
173 | extern int mpa_version; | 173 | extern int mpa_version; |
174 | extern int disable_mpa_crc; | 174 | extern int disable_mpa_crc; |
175 | extern unsigned int send_first; | ||
176 | extern unsigned int nes_drv_opt; | 175 | extern unsigned int nes_drv_opt; |
177 | extern unsigned int nes_debug_level; | 176 | extern unsigned int nes_debug_level; |
178 | extern unsigned int wqm_quanta; | 177 | extern unsigned int wqm_quanta; |
diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c index 1dadcf388c02..cd0ecb215cca 100644 --- a/drivers/infiniband/hw/nes/nes_verbs.c +++ b/drivers/infiniband/hw/nes/nes_verbs.c | |||
@@ -3006,6 +3006,7 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3006 | switch (nesqp->hw_iwarp_state) { | 3006 | switch (nesqp->hw_iwarp_state) { |
3007 | case NES_AEQE_IWARP_STATE_CLOSING: | 3007 | case NES_AEQE_IWARP_STATE_CLOSING: |
3008 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_CLOSING; | 3008 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_CLOSING; |
3009 | break; | ||
3009 | case NES_AEQE_IWARP_STATE_TERMINATE: | 3010 | case NES_AEQE_IWARP_STATE_TERMINATE: |
3010 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_TERMINATE; | 3011 | next_iwarp_state = NES_CQP_QP_IWARP_STATE_TERMINATE; |
3011 | break; | 3012 | break; |
@@ -3068,18 +3069,9 @@ int nes_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, | |||
3068 | } | 3069 | } |
3069 | 3070 | ||
3070 | nesqp->ibqp_state = attr->qp_state; | 3071 | nesqp->ibqp_state = attr->qp_state; |
3071 | if (((nesqp->iwarp_state & NES_CQP_QP_IWARP_STATE_MASK) == | 3072 | nesqp->iwarp_state = next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK; |
3072 | (u32)NES_CQP_QP_IWARP_STATE_RTS) && | 3073 | nes_debug(NES_DBG_MOD_QP, "Change nesqp->iwarp_state=%08x\n", |
3073 | ((next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK) > | 3074 | nesqp->iwarp_state); |
3074 | (u32)NES_CQP_QP_IWARP_STATE_RTS)) { | ||
3075 | nesqp->iwarp_state = next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK; | ||
3076 | nes_debug(NES_DBG_MOD_QP, "Change nesqp->iwarp_state=%08x\n", | ||
3077 | nesqp->iwarp_state); | ||
3078 | } else { | ||
3079 | nesqp->iwarp_state = next_iwarp_state & NES_CQP_QP_IWARP_STATE_MASK; | ||
3080 | nes_debug(NES_DBG_MOD_QP, "Change nesqp->iwarp_state=%08x\n", | ||
3081 | nesqp->iwarp_state); | ||
3082 | } | ||
3083 | } | 3075 | } |
3084 | 3076 | ||
3085 | if (attr_mask & IB_QP_ACCESS_FLAGS) { | 3077 | if (attr_mask & IB_QP_ACCESS_FLAGS) { |
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h index 196eb52f0035..07ca6fd5546b 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib.h +++ b/drivers/infiniband/ulp/ipoib/ipoib.h | |||
@@ -535,14 +535,14 @@ void ipoib_drain_cq(struct net_device *dev); | |||
535 | void ipoib_set_ethtool_ops(struct net_device *dev); | 535 | void ipoib_set_ethtool_ops(struct net_device *dev); |
536 | int ipoib_set_dev_features(struct ipoib_dev_priv *priv, struct ib_device *hca); | 536 | int ipoib_set_dev_features(struct ipoib_dev_priv *priv, struct ib_device *hca); |
537 | 537 | ||
538 | #ifdef CONFIG_INFINIBAND_IPOIB_CM | ||
539 | |||
540 | #define IPOIB_FLAGS_RC 0x80 | 538 | #define IPOIB_FLAGS_RC 0x80 |
541 | #define IPOIB_FLAGS_UC 0x40 | 539 | #define IPOIB_FLAGS_UC 0x40 |
542 | 540 | ||
543 | /* We don't support UC connections at the moment */ | 541 | /* We don't support UC connections at the moment */ |
544 | #define IPOIB_CM_SUPPORTED(ha) (ha[0] & (IPOIB_FLAGS_RC)) | 542 | #define IPOIB_CM_SUPPORTED(ha) (ha[0] & (IPOIB_FLAGS_RC)) |
545 | 543 | ||
544 | #ifdef CONFIG_INFINIBAND_IPOIB_CM | ||
545 | |||
546 | extern int ipoib_max_conn_qp; | 546 | extern int ipoib_max_conn_qp; |
547 | 547 | ||
548 | static inline int ipoib_cm_admin_enabled(struct net_device *dev) | 548 | static inline int ipoib_cm_admin_enabled(struct net_device *dev) |
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 175581cf478c..72ae63f0072d 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c | |||
@@ -1448,37 +1448,6 @@ static ssize_t show_mode(struct device *d, struct device_attribute *attr, | |||
1448 | return sprintf(buf, "datagram\n"); | 1448 | return sprintf(buf, "datagram\n"); |
1449 | } | 1449 | } |
1450 | 1450 | ||
1451 | int ipoib_set_mode(struct net_device *dev, const char *buf) | ||
1452 | { | ||
1453 | struct ipoib_dev_priv *priv = netdev_priv(dev); | ||
1454 | |||
1455 | /* flush paths if we switch modes so that connections are restarted */ | ||
1456 | if (IPOIB_CM_SUPPORTED(dev->dev_addr) && !strcmp(buf, "connected\n")) { | ||
1457 | set_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | ||
1458 | ipoib_warn(priv, "enabling connected mode " | ||
1459 | "will cause multicast packet drops\n"); | ||
1460 | netdev_update_features(dev); | ||
1461 | rtnl_unlock(); | ||
1462 | priv->tx_wr.send_flags &= ~IB_SEND_IP_CSUM; | ||
1463 | |||
1464 | ipoib_flush_paths(dev); | ||
1465 | rtnl_lock(); | ||
1466 | return 0; | ||
1467 | } | ||
1468 | |||
1469 | if (!strcmp(buf, "datagram\n")) { | ||
1470 | clear_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | ||
1471 | netdev_update_features(dev); | ||
1472 | dev_set_mtu(dev, min(priv->mcast_mtu, dev->mtu)); | ||
1473 | rtnl_unlock(); | ||
1474 | ipoib_flush_paths(dev); | ||
1475 | rtnl_lock(); | ||
1476 | return 0; | ||
1477 | } | ||
1478 | |||
1479 | return -EINVAL; | ||
1480 | } | ||
1481 | |||
1482 | static ssize_t set_mode(struct device *d, struct device_attribute *attr, | 1451 | static ssize_t set_mode(struct device *d, struct device_attribute *attr, |
1483 | const char *buf, size_t count) | 1452 | const char *buf, size_t count) |
1484 | { | 1453 | { |
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index d576c7aad89d..6fdc9e78da0d 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c | |||
@@ -215,6 +215,37 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) | |||
215 | return 0; | 215 | return 0; |
216 | } | 216 | } |
217 | 217 | ||
218 | int ipoib_set_mode(struct net_device *dev, const char *buf) | ||
219 | { | ||
220 | struct ipoib_dev_priv *priv = netdev_priv(dev); | ||
221 | |||
222 | /* flush paths if we switch modes so that connections are restarted */ | ||
223 | if (IPOIB_CM_SUPPORTED(dev->dev_addr) && !strcmp(buf, "connected\n")) { | ||
224 | set_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | ||
225 | ipoib_warn(priv, "enabling connected mode " | ||
226 | "will cause multicast packet drops\n"); | ||
227 | netdev_update_features(dev); | ||
228 | rtnl_unlock(); | ||
229 | priv->tx_wr.send_flags &= ~IB_SEND_IP_CSUM; | ||
230 | |||
231 | ipoib_flush_paths(dev); | ||
232 | rtnl_lock(); | ||
233 | return 0; | ||
234 | } | ||
235 | |||
236 | if (!strcmp(buf, "datagram\n")) { | ||
237 | clear_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | ||
238 | netdev_update_features(dev); | ||
239 | dev_set_mtu(dev, min(priv->mcast_mtu, dev->mtu)); | ||
240 | rtnl_unlock(); | ||
241 | ipoib_flush_paths(dev); | ||
242 | rtnl_lock(); | ||
243 | return 0; | ||
244 | } | ||
245 | |||
246 | return -EINVAL; | ||
247 | } | ||
248 | |||
218 | static struct ipoib_path *__path_find(struct net_device *dev, void *gid) | 249 | static struct ipoib_path *__path_find(struct net_device *dev, void *gid) |
219 | { | 250 | { |
220 | struct ipoib_dev_priv *priv = netdev_priv(dev); | 251 | struct ipoib_dev_priv *priv = netdev_priv(dev); |
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c index ba6506ff4abb..926c911c0ac4 100644 --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | |||
@@ -3094,6 +3094,8 @@ int mlx4_QP_FLOW_STEERING_ATTACH_wrapper(struct mlx4_dev *dev, int slave, | |||
3094 | if (validate_eth_header_mac(slave, rule_header, rlist)) | 3094 | if (validate_eth_header_mac(slave, rule_header, rlist)) |
3095 | return -EINVAL; | 3095 | return -EINVAL; |
3096 | break; | 3096 | break; |
3097 | case MLX4_NET_TRANS_RULE_ID_IB: | ||
3098 | break; | ||
3097 | case MLX4_NET_TRANS_RULE_ID_IPV4: | 3099 | case MLX4_NET_TRANS_RULE_ID_IPV4: |
3098 | case MLX4_NET_TRANS_RULE_ID_TCP: | 3100 | case MLX4_NET_TRANS_RULE_ID_TCP: |
3099 | case MLX4_NET_TRANS_RULE_ID_UDP: | 3101 | case MLX4_NET_TRANS_RULE_ID_UDP: |