Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ce29d72cc737df3573854a4719f00385adf1c9a6 Commit: ce29d72cc737df3573854a4719f00385adf1c9a6 Parent: a20f3a6d7e67a8aee571fb04634a631ba59f6e92 Author: Hoang-Nam Nguyen <[EMAIL PROTECTED]> AuthorDate: Fri Jan 19 22:50:10 2007 +0100 Committer: Roland Dreier <[EMAIL PROTECTED]> CommitDate: Mon Jan 22 17:03:55 2007 -0800
IB/ehca: Fix improper use of yield() with spinlock held Signed-off-by: Hoang-Nam Nguyen <[EMAIL PROTECTED]> Signed-off-by: Roland Dreier <[EMAIL PROTECTED]> --- drivers/infiniband/hw/ehca/ehca_cq.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/infiniband/hw/ehca/ehca_cq.c b/drivers/infiniband/hw/ehca/ehca_cq.c index 93995b6..6074c89 100644 --- a/drivers/infiniband/hw/ehca/ehca_cq.c +++ b/drivers/infiniband/hw/ehca/ehca_cq.c @@ -344,8 +344,11 @@ int ehca_destroy_cq(struct ib_cq *cq) unsigned long flags; spin_lock_irqsave(&ehca_cq_idr_lock, flags); - while (my_cq->nr_callbacks) + while (my_cq->nr_callbacks) { + spin_unlock_irqrestore(&ehca_cq_idr_lock, flags); yield(); + spin_lock_irqsave(&ehca_cq_idr_lock, flags); + } idr_remove(&ehca_cq_idr, my_cq->token); spin_unlock_irqrestore(&ehca_cq_idr_lock, flags); - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html