Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1661017 > unrolled thread

[PATCH 0/2] esas2r: Replace semaphores with mutexes

Started byBinoy Jayan <binoy.jayan@linaro.org>
First post2017-06-08 12:10 +0200
Last post2017-06-13 03:20 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/2] esas2r: Replace semaphores with mutexes Binoy Jayan <binoy.jayan@linaro.org> - 2017-06-08 12:10 +0200
    [PATCH 1/2] scsi: esas2r: Replace semaphore fm_api_semaphore with mutex Binoy Jayan <binoy.jayan@linaro.org> - 2017-06-08 12:10 +0200
    [PATCH 2/2] scsi: esas2r: Replace semaphore fs_api_semaphore with mutex Binoy Jayan <binoy.jayan@linaro.org> - 2017-06-08 12:10 +0200
    Re: [PATCH 0/2] esas2r: Replace semaphores with mutexes Arnd Bergmann <arnd@arndb.de> - 2017-06-08 17:10 +0200
    Re: [PATCH 0/2] esas2r: Replace semaphores with mutexes "Martin K. Petersen" <martin.petersen@oracle.com> - 2017-06-13 03:20 +0200

#1661017 — [PATCH 0/2] esas2r: Replace semaphores with mutexes

FromBinoy Jayan <binoy.jayan@linaro.org>
Date2017-06-08 12:10 +0200
Subject[PATCH 0/2] esas2r: Replace semaphores with mutexes
Message-ID<tQ2y5-2WM-1@gated-at.bofh.it>
These are a set of patches which removes semaphores from esas2r.
These are part of a bigger effort to eliminate unwanted semaphores
from the linux kernel.

Binoy Jayan (2):
  scsi: esas2r: Replace semaphore fm_api_semaphore with mutex
  scsi: esas2r: Replace semaphore fs_api_semaphore with mutex

 drivers/scsi/esas2r/esas2r.h       |  4 ++--
 drivers/scsi/esas2r/esas2r_init.c  |  4 ++--
 drivers/scsi/esas2r/esas2r_ioctl.c | 10 +++++-----
 3 files changed, 9 insertions(+), 9 deletions(-)

-- 
Binoy Jayan

[toc] | [next] | [standalone]


#1661022 — [PATCH 1/2] scsi: esas2r: Replace semaphore fm_api_semaphore with mutex

FromBinoy Jayan <binoy.jayan@linaro.org>
Date2017-06-08 12:10 +0200
Subject[PATCH 1/2] scsi: esas2r: Replace semaphore fm_api_semaphore with mutex
Message-ID<tQ2y6-2WM-13@gated-at.bofh.it>
In reply to#1661017
The semaphore 'fm_api_semaphore' is used as a simple mutex, so
it should be written as one. Semaphores are going away in the future.

Signed-off-by: Binoy Jayan <binoy.jayan@linaro.org>
---
 drivers/scsi/esas2r/esas2r.h       | 2 +-
 drivers/scsi/esas2r/esas2r_init.c  | 2 +-
 drivers/scsi/esas2r/esas2r_ioctl.c | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/esas2r/esas2r.h b/drivers/scsi/esas2r/esas2r.h
index b6030e3..c5013de 100644
--- a/drivers/scsi/esas2r/esas2r.h
+++ b/drivers/scsi/esas2r/esas2r.h
@@ -945,7 +945,7 @@ struct esas2r_adapter {
 	struct list_head vrq_mds_head;
 	struct esas2r_mem_desc *vrq_mds;
 	int num_vrqs;
-	struct semaphore fm_api_semaphore;
+	struct mutex fm_api_mutex;
 	struct semaphore fs_api_semaphore;
 	struct semaphore nvram_semaphore;
 	struct atto_ioctl *local_atto_ioctl;
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 6432a50..ad85b33 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -327,7 +327,7 @@ int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid,
 	esas2r_debug("new adapter %p, name %s", a, a->name);
 	spin_lock_init(&a->request_lock);
 	spin_lock_init(&a->fw_event_lock);
-	sema_init(&a->fm_api_semaphore, 1);
+	mutex_init(&a->fm_api_mutex);
 	sema_init(&a->fs_api_semaphore, 1);
 	sema_init(&a->nvram_semaphore, 1);
 
diff --git a/drivers/scsi/esas2r/esas2r_ioctl.c b/drivers/scsi/esas2r/esas2r_ioctl.c
index 2d4b7f0..c6b041a 100644
--- a/drivers/scsi/esas2r/esas2r_ioctl.c
+++ b/drivers/scsi/esas2r/esas2r_ioctl.c
@@ -110,7 +110,7 @@ static void do_fm_api(struct esas2r_adapter *a, struct esas2r_flash_img *fi)
 {
 	struct esas2r_request *rq;
 
-	if (down_interruptible(&a->fm_api_semaphore)) {
+	if (mutex_lock_interruptible(&a->fm_api_mutex)) {
 		fi->status = FI_STAT_BUSY;
 		return;
 	}
@@ -173,7 +173,7 @@ static void do_fm_api(struct esas2r_adapter *a, struct esas2r_flash_img *fi)
 free_req:
 	esas2r_free_request(a, (struct esas2r_request *)rq);
 free_sem:
-	up(&a->fm_api_semaphore);
+	mutex_unlock(&a->fm_api_mutex);
 	return;
 
 }
-- 
Binoy Jayan

[toc] | [prev] | [next] | [standalone]


#1661025 — [PATCH 2/2] scsi: esas2r: Replace semaphore fs_api_semaphore with mutex

FromBinoy Jayan <binoy.jayan@linaro.org>
Date2017-06-08 12:10 +0200
Subject[PATCH 2/2] scsi: esas2r: Replace semaphore fs_api_semaphore with mutex
Message-ID<tQ2y6-2WM-19@gated-at.bofh.it>
In reply to#1661017
The semaphore 'fs_api_semaphore' is used as a simple mutex, so
it should be written as one. Semaphores are going away in the future.

Signed-off-by: Binoy Jayan <binoy.jayan@linaro.org>
---
 drivers/scsi/esas2r/esas2r.h       | 2 +-
 drivers/scsi/esas2r/esas2r_init.c  | 2 +-
 drivers/scsi/esas2r/esas2r_ioctl.c | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/scsi/esas2r/esas2r.h b/drivers/scsi/esas2r/esas2r.h
index c5013de..1da6407 100644
--- a/drivers/scsi/esas2r/esas2r.h
+++ b/drivers/scsi/esas2r/esas2r.h
@@ -946,7 +946,7 @@ struct esas2r_adapter {
 	struct esas2r_mem_desc *vrq_mds;
 	int num_vrqs;
 	struct mutex fm_api_mutex;
-	struct semaphore fs_api_semaphore;
+	struct mutex fs_api_mutex;
 	struct semaphore nvram_semaphore;
 	struct atto_ioctl *local_atto_ioctl;
 	u8 fw_coredump_buff[ESAS2R_FWCOREDUMP_SZ];
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index ad85b33..5b14dd2 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -328,7 +328,7 @@ int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid,
 	spin_lock_init(&a->request_lock);
 	spin_lock_init(&a->fw_event_lock);
 	mutex_init(&a->fm_api_mutex);
-	sema_init(&a->fs_api_semaphore, 1);
+	mutex_init(&a->fs_api_mutex);
 	sema_init(&a->nvram_semaphore, 1);
 
 	esas2r_fw_event_off(a);
diff --git a/drivers/scsi/esas2r/esas2r_ioctl.c b/drivers/scsi/esas2r/esas2r_ioctl.c
index c6b041a..9762300 100644
--- a/drivers/scsi/esas2r/esas2r_ioctl.c
+++ b/drivers/scsi/esas2r/esas2r_ioctl.c
@@ -1962,7 +1962,7 @@ int esas2r_read_fs(struct esas2r_adapter *a, char *buf, long off, int count)
 			(struct esas2r_ioctl_fs *)a->fs_api_buffer;
 
 		/* If another flash request is already in progress, return. */
-		if (down_interruptible(&a->fs_api_semaphore)) {
+		if (mutex_lock_interruptible(&a->fs_api_mutex)) {
 busy:
 			fs->status = ATTO_STS_OUT_OF_RSRC;
 			return -EBUSY;
@@ -1978,7 +1978,7 @@ int esas2r_read_fs(struct esas2r_adapter *a, char *buf, long off, int count)
 		rq = esas2r_alloc_request(a);
 		if (rq == NULL) {
 			esas2r_debug("esas2r_read_fs: out of requests");
-			up(&a->fs_api_semaphore);
+			mutex_unlock(&a->fs_api_mutex);
 			goto busy;
 		}
 
@@ -2006,7 +2006,7 @@ int esas2r_read_fs(struct esas2r_adapter *a, char *buf, long off, int count)
 		;
 dont_wait:
 		/* Free the request and keep going */
-		up(&a->fs_api_semaphore);
+		mutex_unlock(&a->fs_api_mutex);
 		esas2r_free_request(a, (struct esas2r_request *)rq);
 
 		/* Pick up possible error code from above */
-- 
Binoy Jayan

[toc] | [prev] | [next] | [standalone]


#1661363

FromArnd Bergmann <arnd@arndb.de>
Date2017-06-08 17:10 +0200
Message-ID<tQ7eq-5TV-15@gated-at.bofh.it>
In reply to#1661017
On Thu, Jun 8, 2017 at 12:07 PM, Binoy Jayan <binoy.jayan@linaro.org> wrote:
> These are a set of patches which removes semaphores from esas2r.
> These are part of a bigger effort to eliminate unwanted semaphores
> from the linux kernel.
>
> Binoy Jayan (2):
>   scsi: esas2r: Replace semaphore fm_api_semaphore with mutex
>   scsi: esas2r: Replace semaphore fs_api_semaphore with mutex

Both conversions looks good. I think the interruption is not handled
correctly here, but your patch doesn't change that.

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

[toc] | [prev] | [next] | [standalone]


#1664335

From"Martin K. Petersen" <martin.petersen@oracle.com>
Date2017-06-13 03:20 +0200
Message-ID<tRIEV-1n3-5@gated-at.bofh.it>
In reply to#1661017
Binoy,

> These are a set of patches which removes semaphores from esas2r.
> These are part of a bigger effort to eliminate unwanted semaphores
> from the linux kernel.

Applied to 4.13/scsi-queue.

-- 
Martin K. Petersen	Oracle Linux Engineering

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web