[POWERPC] viopath: Use a completion in some more places

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by Christoph Hellwig and committed by Paul Mackerras 39d20703 9d561ed4

+6 -6
+6 -6
arch/powerpc/platforms/iseries/viopath.c
··· 82 82 * if system_state is not SYSTEM_RUNNING, then wait_atomic is used ... 83 83 */ 84 84 struct alloc_parms { 85 - struct semaphore sem; 85 + struct completion done; 86 86 int number; 87 87 atomic_t wait_atomic; 88 88 int used_wait_atomic; ··· 465 465 if (parmsp->used_wait_atomic) 466 466 atomic_set(&parmsp->wait_atomic, 0); 467 467 else 468 - up(&parmsp->sem); 468 + complete(&parmsp->done); 469 469 } 470 470 471 471 static int allocateEvents(HvLpIndex remoteLp, int numEvents) ··· 477 477 atomic_set(&parms.wait_atomic, 1); 478 478 } else { 479 479 parms.used_wait_atomic = 0; 480 - init_MUTEX_LOCKED(&parms.sem); 480 + init_completion(&parms.done); 481 481 } 482 482 mf_allocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 250, /* It would be nice to put a real number here! */ 483 483 numEvents, &viopath_donealloc, &parms); ··· 485 485 while (atomic_read(&parms.wait_atomic)) 486 486 mb(); 487 487 } else 488 - down(&parms.sem); 488 + wait_for_completion(&parms.done); 489 489 return parms.number; 490 490 } 491 491 ··· 586 586 spin_unlock_irqrestore(&statuslock, flags); 587 587 588 588 parms.used_wait_atomic = 0; 589 - init_MUTEX_LOCKED(&parms.sem); 589 + init_completion(&parms.done); 590 590 mf_deallocate_lp_events(remoteLp, HvLpEvent_Type_VirtualIo, 591 591 numReq, &viopath_donealloc, &parms); 592 - down(&parms.sem); 592 + wait_for_completion(&parms.done); 593 593 594 594 spin_lock_irqsave(&statuslock, flags); 595 595 for (i = 0, numOpen = 0; i < VIO_MAX_SUBTYPES; i++)