IB/ehca: Fix improper use of yield() with spinlock held

Signed-off-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>

authored by Hoang-Nam Nguyen and committed by Roland Dreier ce29d72c a20f3a6d

+4 -1
+4 -1
drivers/infiniband/hw/ehca/ehca_cq.c
··· 344 344 unsigned long flags; 345 345 346 346 spin_lock_irqsave(&ehca_cq_idr_lock, flags); 347 - while (my_cq->nr_callbacks) 347 + while (my_cq->nr_callbacks) { 348 + spin_unlock_irqrestore(&ehca_cq_idr_lock, flags); 348 349 yield(); 350 + spin_lock_irqsave(&ehca_cq_idr_lock, flags); 351 + } 349 352 350 353 idr_remove(&ehca_cq_idr, my_cq->token); 351 354 spin_unlock_irqrestore(&ehca_cq_idr_lock, flags);