aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/hw/ipath/ipath_ruc.c6
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.c1
2 files changed, 3 insertions, 4 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
index 8c5d20a4b5f3..837118676cc7 100644
--- a/drivers/infiniband/hw/ipath/ipath_ruc.c
+++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
@@ -503,11 +503,9 @@ void ipath_no_bufs_available(struct ipath_qp *qp, struct ipath_ibdev *dev)
503 * could be called. If we are still in the tasklet function, 503 * could be called. If we are still in the tasklet function,
504 * tasklet_hi_schedule() will not call us until the next time 504 * tasklet_hi_schedule() will not call us until the next time
505 * tasklet_hi_schedule() is called. 505 * tasklet_hi_schedule() is called.
506 * We clear the tasklet flag now since we are committing to return 506 * We leave the busy flag set so that another post send doesn't
507 * from the tasklet function. 507 * try to put the same QP on the piowait list again.
508 */ 508 */
509 clear_bit(IPATH_S_BUSY, &qp->s_busy);
510 tasklet_unlock(&qp->s_task);
511 want_buffer(dev->dd); 509 want_buffer(dev->dd);
512 dev->n_piowait++; 510 dev->n_piowait++;
513} 511}
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index 04294ca0a81f..cd79a8ca5104 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -948,6 +948,7 @@ int ipath_ib_piobufavail(struct ipath_ibdev *dev)
948 qp = list_entry(dev->piowait.next, struct ipath_qp, 948 qp = list_entry(dev->piowait.next, struct ipath_qp,
949 piowait); 949 piowait);
950 list_del_init(&qp->piowait); 950 list_del_init(&qp->piowait);
951 clear_bit(IPATH_S_BUSY, &qp->s_busy);
951 tasklet_hi_schedule(&qp->s_task); 952 tasklet_hi_schedule(&qp->s_task);
952 } 953 }
953 spin_unlock_irqrestore(&dev->pending_lock, flags); 954 spin_unlock_irqrestore(&dev->pending_lock, flags);