Message ID | 20181210213301.1065510-1-arnd@arndb.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [1/2] scsi: aacraid: change wait_sem to a completion | expand |
Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
> -----Original Message----- > From: linux-scsi-owner@vger.kernel.org [mailto:linux-scsi- > owner@vger.kernel.org] On Behalf Of Arnd Bergmann > Sent: Monday, December 10, 2018 1:33 PM > To: Adaptec OEM Raid Solutions <aacraid@microsemi.com>; James E.J. > Bottomley <jejb@linux.ibm.com>; Martin K. Petersen > <martin.petersen@oracle.com> > Cc: Arnd Bergmann <arnd@arndb.de>; Raghava Aditya Renukunta > <RaghavaAditya.Renukunta@microsemi.com>; Prasad B Munirathnam > <prasad.munirathnam@microsemi.com>; Dave Carroll > <david.carroll@microsemi.com>; Dan Carpenter > <dan.carpenter@oracle.com>; Johannes Thumshirn <jthumshirn@suse.de>; > linux-scsi@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: [PATCH 1/2] scsi: aacraid: change wait_sem to a completion > > The wait_sem member is used like a completion, so we should use the > respective API. The behavior is unchanged. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- Reviewed-by: Dave Carroll <david.carroll@microsemi.com>
Arnd, > The wait_sem member is used like a completion, so we should use the > respective API. The behavior is unchanged. Applied to 4.21/scsi-queue. Thank you!
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 39eb415987fc..531a0b9a58f8 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h @@ -1241,7 +1241,7 @@ struct aac_fib_context { u32 unique; // unique value representing this context ulong jiffies; // used for cleanup - dmb changed to ulong struct list_head next; // used to link context's into a linked list - struct semaphore wait_sem; // this is used to wait for the next fib to arrive. + struct completion completion; // this is used to wait for the next fib to arrive. int wait; // Set to true when thread is in WaitForSingleObject unsigned long count; // total number of FIBs on FibList struct list_head fib_list; // this holds fibs and their attachd hw_fibs diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c index 25f6600d6c09..6a6ad9477786 100644 --- a/drivers/scsi/aacraid/commctrl.c +++ b/drivers/scsi/aacraid/commctrl.c @@ -203,7 +203,7 @@ static int open_getadapter_fib(struct aac_dev * dev, void __user *arg) /* * Initialize the mutex used to wait for the next AIF. */ - sema_init(&fibctx->wait_sem, 0); + init_completion(&fibctx->completion); fibctx->wait = 0; /* * Initialize the fibs and set the count of fibs on @@ -335,7 +335,7 @@ static int next_getadapter_fib(struct aac_dev * dev, void __user *arg) ssleep(1); } if (f.wait) { - if(down_interruptible(&fibctx->wait_sem) < 0) { + if (wait_for_completion_interruptible(&fibctx->completion) < 0) { status = -ERESTARTSYS; } else { /* Lock again and retry */ diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index 1e77d96a18f2..7ed51a77e39d 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c @@ -1828,7 +1828,7 @@ int aac_check_health(struct aac_dev * aac) * Set the event to wake up the * thread that will waiting. */ - up(&fibctx->wait_sem); + complete(&fibctx->completion); } else { printk(KERN_WARNING "aifd: didn't allocate NewFib.\n"); kfree(fib); @@ -2165,7 +2165,7 @@ static void wakeup_fibctx_threads(struct aac_dev *dev, * Set the event to wake up the * thread that is waiting. */ - up(&fibctx->wait_sem); + complete(&fibctx->completion); entry = entry->next; }
The wait_sem member is used like a completion, so we should use the respective API. The behavior is unchanged. Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/scsi/aacraid/aacraid.h | 2 +- drivers/scsi/aacraid/commctrl.c | 4 ++-- drivers/scsi/aacraid/commsup.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-)