From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: [PATCH] SCSI: Replace semaphore with completion Date: Wed, 20 Oct 2004 21:31:39 +0200 Sender: linux-kernel-owner@vger.kernel.org Message-ID: <1098300699.20821.68.camel@thomas> Reply-To: tglx@linutronix.de Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Return-path: To: Andrew Morton Cc: Ingo Molnar , SCSI , LKML , James Bottomley List-Id: linux-scsi@vger.kernel.org Use completion instead of semaphore Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar --- 2.6.9-bk-041020-thomas/drivers/scsi/sym53c8xx_2/sym_glue.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN drivers/scsi/sym53c8xx_2/sym_glue.c~sym53c8xx drivers/scsi/sym53c8xx_2/sym_glue.c --- 2.6.9-bk-041020/drivers/scsi/sym53c8xx_2/sym_glue.c~sym53c8xx 2004-10-20 16:04:34.000000000 +0200 +++ 2.6.9-bk-041020-thomas/drivers/scsi/sym53c8xx_2/sym_glue.c 2004-10-20 16:04:50.000000000 +0200 @@ -135,7 +135,7 @@ m_addr_t __vtobus(m_pool_ident_t dev_dma * It is allocated on the eh thread stack. */ struct sym_eh_wait { - struct semaphore sem; + struct completion done; struct timer_list timer; void (*old_done)(struct scsi_cmnd *); int to_do; @@ -798,7 +798,7 @@ static void __sym_eh_done(struct scsi_cm /* Wake up the eh thread if it wants to sleep */ if (ep->to_do == SYM_EH_DO_WAIT) - up(&ep->sem); + complete(&ep->done); } /* @@ -858,7 +858,7 @@ prepare: case SYM_EH_DO_IGNORE: break; case SYM_EH_DO_WAIT: - init_MUTEX_LOCKED(&ep->sem); + init_completion(&ep->done); /* fall through */ case SYM_EH_DO_COMPLETE: ep->old_done = cmd->scsi_done; @@ -909,7 +909,7 @@ prepare: ep->timed_out = 1; /* Be pessimistic for once :) */ add_timer(&ep->timer); spin_unlock_irq(np->s.host->host_lock); - down(&ep->sem); + wait_for_completion(&ep->done); spin_lock_irq(np->s.host->host_lock); if (ep->timed_out) sts = -2; _