aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/nes/nes_cm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/nes/nes_cm.c')
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c32
1 files changed, 9 insertions, 23 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index cfaacaf6bf5f..22ea67eea5dc 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -629,11 +629,9 @@ static void build_rdma0_msg(struct nes_cm_node *cm_node, struct nes_qp **nesqp_a
629 629
630 case SEND_RDMA_READ_ZERO: 630 case SEND_RDMA_READ_ZERO:
631 default: 631 default:
632 if (cm_node->send_rdma0_op != SEND_RDMA_READ_ZERO) { 632 if (cm_node->send_rdma0_op != SEND_RDMA_READ_ZERO)
633 printk(KERN_ERR "%s[%u]: Unsupported RDMA0 len operation=%u\n", 633 WARN(1, "Unsupported RDMA0 len operation=%u\n",
634 __func__, __LINE__, cm_node->send_rdma0_op); 634 cm_node->send_rdma0_op);
635 WARN_ON(1);
636 }
637 nes_debug(NES_DBG_CM, "Sending first rdma operation.\n"); 635 nes_debug(NES_DBG_CM, "Sending first rdma operation.\n");
638 wqe->wqe_words[NES_IWARP_SQ_WQE_MISC_IDX] = 636 wqe->wqe_words[NES_IWARP_SQ_WQE_MISC_IDX] =
639 cpu_to_le32(NES_IWARP_SQ_OP_RDMAR); 637 cpu_to_le32(NES_IWARP_SQ_OP_RDMAR);
@@ -671,7 +669,6 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb,
671 struct nes_cm_core *cm_core = cm_node->cm_core; 669 struct nes_cm_core *cm_core = cm_node->cm_core;
672 struct nes_timer_entry *new_send; 670 struct nes_timer_entry *new_send;
673 int ret = 0; 671 int ret = 0;
674 u32 was_timer_set;
675 672
676 new_send = kzalloc(sizeof(*new_send), GFP_ATOMIC); 673 new_send = kzalloc(sizeof(*new_send), GFP_ATOMIC);
677 if (!new_send) 674 if (!new_send)
@@ -723,12 +720,8 @@ int schedule_nes_timer(struct nes_cm_node *cm_node, struct sk_buff *skb,
723 } 720 }
724 } 721 }
725 722
726 was_timer_set = timer_pending(&cm_core->tcp_timer); 723 if (!timer_pending(&cm_core->tcp_timer))
727 724 mod_timer(&cm_core->tcp_timer, new_send->timetosend);
728 if (!was_timer_set) {
729 cm_core->tcp_timer.expires = new_send->timetosend;
730 add_timer(&cm_core->tcp_timer);
731 }
732 725
733 return ret; 726 return ret;
734} 727}
@@ -946,10 +939,8 @@ static void nes_cm_timer_tick(unsigned long pass)
946 } 939 }
947 940
948 if (settimer) { 941 if (settimer) {
949 if (!timer_pending(&cm_core->tcp_timer)) { 942 if (!timer_pending(&cm_core->tcp_timer))
950 cm_core->tcp_timer.expires = nexttimeout; 943 mod_timer(&cm_core->tcp_timer, nexttimeout);
951 add_timer(&cm_core->tcp_timer);
952 }
953 } 944 }
954} 945}
955 946
@@ -1314,8 +1305,6 @@ static int mini_cm_del_listen(struct nes_cm_core *cm_core,
1314static inline int mini_cm_accelerated(struct nes_cm_core *cm_core, 1305static inline int mini_cm_accelerated(struct nes_cm_core *cm_core,
1315 struct nes_cm_node *cm_node) 1306 struct nes_cm_node *cm_node)
1316{ 1307{
1317 u32 was_timer_set;
1318
1319 cm_node->accelerated = 1; 1308 cm_node->accelerated = 1;
1320 1309
1321 if (cm_node->accept_pend) { 1310 if (cm_node->accept_pend) {
@@ -1325,11 +1314,8 @@ static inline int mini_cm_accelerated(struct nes_cm_core *cm_core,
1325 BUG_ON(atomic_read(&cm_node->listener->pend_accepts_cnt) < 0); 1314 BUG_ON(atomic_read(&cm_node->listener->pend_accepts_cnt) < 0);
1326 } 1315 }
1327 1316
1328 was_timer_set = timer_pending(&cm_core->tcp_timer); 1317 if (!timer_pending(&cm_core->tcp_timer))
1329 if (!was_timer_set) { 1318 mod_timer(&cm_core->tcp_timer, (jiffies + NES_SHORT_TIME));
1330 cm_core->tcp_timer.expires = jiffies + NES_SHORT_TIME;
1331 add_timer(&cm_core->tcp_timer);
1332 }
1333 1319
1334 return 0; 1320 return 0;
1335} 1321}