All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] ALSA: Fine-tuning for several function implementations
@ 2017-01-24 10:19 ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:19 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 11:02:34 +0100

Some update suggestions were taken into account
from static source code analysis.

Markus Elfring (7):
  seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
  seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
  seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
  seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
  seq: Adjust 16 function calls together with a variable assignment
  dmasound_core: Move two assignments for the variable "ret" in state_open()
  dmasound_core: Adjust six function calls together with a variable assignment

 sound/core/seq/seq_clientmgr.c     | 163 ++++++++++++++++++++-----------------
 sound/oss/dmasound/dmasound_core.c |  33 +++++---
 2 files changed, 109 insertions(+), 87 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 0/7] ALSA: Fine-tuning for several function implementations
@ 2017-01-24 10:19 ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:19 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 11:02:34 +0100

Some update suggestions were taken into account
from static source code analysis.

Markus Elfring (7):
  seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
  seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
  seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
  seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
  seq: Adjust 16 function calls together with a variable assignment
  dmasound_core: Move two assignments for the variable "ret" in state_open()
  dmasound_core: Adjust six function calls together with a variable assignment

 sound/core/seq/seq_clientmgr.c     | 163 ++++++++++++++++++++-----------------
 sound/oss/dmasound/dmasound_core.c |  33 +++++---
 2 files changed, 109 insertions(+), 87 deletions(-)

-- 
2.11.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 1/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:21   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:21 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 08:00:34 +0100

Two checks were repeated by the snd_seq_ioctl_query_subs() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 4c935202ce23..594c341a193e 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1925,16 +1925,16 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 {
 	struct snd_seq_query_subs *subs = arg;
 	int result = -ENXIO;
-	struct snd_seq_client *cptr = NULL;
-	struct snd_seq_client_port *port = NULL;
+	struct snd_seq_client *cptr;
+	struct snd_seq_client_port *port;
 	struct snd_seq_port_subs_info *group;
 	struct list_head *p;
 	int i;
 
 	if ((cptr = snd_seq_client_use_ptr(subs->root.client)) == NULL)
-		goto __end;
+		goto exit;
 	if ((port = snd_seq_port_use_ptr(cptr, subs->root.port)) == NULL)
-		goto __end;
+		goto unlock_client;
 
 	switch (subs->type) {
 	case SNDRV_SEQ_QUERY_SUBS_READ:
@@ -1944,7 +1944,7 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 		group = &port->c_dest;
 		break;
 	default:
-		goto __end;
+		goto unlock_port;
 	}
 
 	down_read(&group->list_mutex);
@@ -1970,13 +1970,11 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 		}
 	}
 	up_read(&group->list_mutex);
-
-      __end:
-   	if (port)
-		snd_seq_port_unlock(port);
-	if (cptr)
-		snd_seq_client_unlock(cptr);
-
+unlock_port:
+	snd_seq_port_unlock(port);
+unlock_client:
+	snd_seq_client_unlock(cptr);
+exit:
 	return result;
 }
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 1/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
@ 2017-01-24 10:21   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:21 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 08:00:34 +0100

Two checks were repeated by the snd_seq_ioctl_query_subs() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 4c935202ce23..594c341a193e 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1925,16 +1925,16 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 {
 	struct snd_seq_query_subs *subs = arg;
 	int result = -ENXIO;
-	struct snd_seq_client *cptr = NULL;
-	struct snd_seq_client_port *port = NULL;
+	struct snd_seq_client *cptr;
+	struct snd_seq_client_port *port;
 	struct snd_seq_port_subs_info *group;
 	struct list_head *p;
 	int i;
 
 	if ((cptr = snd_seq_client_use_ptr(subs->root.client)) = NULL)
-		goto __end;
+		goto exit;
 	if ((port = snd_seq_port_use_ptr(cptr, subs->root.port)) = NULL)
-		goto __end;
+		goto unlock_client;
 
 	switch (subs->type) {
 	case SNDRV_SEQ_QUERY_SUBS_READ:
@@ -1944,7 +1944,7 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 		group = &port->c_dest;
 		break;
 	default:
-		goto __end;
+		goto unlock_port;
 	}
 
 	down_read(&group->list_mutex);
@@ -1970,13 +1970,11 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 		}
 	}
 	up_read(&group->list_mutex);
-
-      __end:
-   	if (port)
-		snd_seq_port_unlock(port);
-	if (cptr)
-		snd_seq_client_unlock(cptr);
-
+unlock_port:
+	snd_seq_port_unlock(port);
+unlock_client:
+	snd_seq_client_unlock(cptr);
+exit:
 	return result;
 }
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 2/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:22   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:22 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 08:54:36 +0100

Two checks were repeated by the snd_seq_ioctl_get_subscription() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Convert an assignment for the variable "result" to a direct initialisation.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 594c341a193e..8e804ff784ed 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1891,16 +1891,15 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 					  void *arg)
 {
 	struct snd_seq_port_subscribe *subs = arg;
-	int result;
-	struct snd_seq_client *sender = NULL;
-	struct snd_seq_client_port *sport = NULL;
+	int result = -EINVAL;
+	struct snd_seq_client *sender;
+	struct snd_seq_client_port *sport;
 	struct snd_seq_subscribers *p;
 
-	result = -EINVAL;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
-		goto __end;
+		goto exit;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
-		goto __end;
+		goto unlock_client;
 	p = snd_seq_port_get_subscription(&sport->c_src, &subs->dest);
 	if (p) {
 		result = 0;
@@ -1908,12 +1907,10 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 	} else
 		result = -ENOENT;
 
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-
+	snd_seq_port_unlock(sport);
+unlock_client:
+	snd_seq_client_unlock(sender);
+exit:
 	return result;
 }
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 2/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
@ 2017-01-24 10:22   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:22 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 08:54:36 +0100

Two checks were repeated by the snd_seq_ioctl_get_subscription() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Convert an assignment for the variable "result" to a direct initialisation.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 594c341a193e..8e804ff784ed 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1891,16 +1891,15 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 					  void *arg)
 {
 	struct snd_seq_port_subscribe *subs = arg;
-	int result;
-	struct snd_seq_client *sender = NULL;
-	struct snd_seq_client_port *sport = NULL;
+	int result = -EINVAL;
+	struct snd_seq_client *sender;
+	struct snd_seq_client_port *sport;
 	struct snd_seq_subscribers *p;
 
-	result = -EINVAL;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
-		goto __end;
+		goto exit;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
-		goto __end;
+		goto unlock_client;
 	p = snd_seq_port_get_subscription(&sport->c_src, &subs->dest);
 	if (p) {
 		result = 0;
@@ -1908,12 +1907,10 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 	} else
 		result = -ENOENT;
 
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-
+	snd_seq_port_unlock(sport);
+unlock_client:
+	snd_seq_client_unlock(sender);
+exit:
 	return result;
 }
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 3/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:23   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:23 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:01:17 +0100

Four checks were repeated by the snd_seq_ioctl_unsubscribe_port() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 8e804ff784ed..ba26d622cb71 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1465,35 +1465,35 @@ static int snd_seq_ioctl_unsubscribe_port(struct snd_seq_client *client,
 {
 	struct snd_seq_port_subscribe *subs = arg;
 	int result = -ENXIO;
-	struct snd_seq_client *receiver = NULL, *sender = NULL;
-	struct snd_seq_client_port *sport = NULL, *dport = NULL;
+	struct snd_seq_client *receiver, *sender;
+	struct snd_seq_client_port *sport, *dport;
 
 	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) == NULL)
-		goto __end;
+		goto exit;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
-		goto __end;
+		goto unlock_receiver;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
-		goto __end;
+		goto unlock_sender;
 	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) == NULL)
-		goto __end;
+		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
 	if (result < 0)
-		goto __end;
+		goto unlock_dport;
 
 	result = snd_seq_port_disconnect(client, sender, sport, receiver, dport, subs);
 	if (! result) /* broadcast announce */
 		snd_seq_client_notify_subscription(SNDRV_SEQ_ADDRESS_SUBSCRIBERS, 0,
 						   subs, SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED);
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (dport)
-		snd_seq_port_unlock(dport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-	if (receiver)
-		snd_seq_client_unlock(receiver);
+unlock_dport:
+	snd_seq_port_unlock(dport);
+unlock_sport:
+	snd_seq_port_unlock(sport);
+unlock_sender:
+	snd_seq_client_unlock(sender);
+unlock_receiver:
+	snd_seq_client_unlock(receiver);
+exit:
 	return result;
 }
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 3/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
@ 2017-01-24 10:23   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:23 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:01:17 +0100

Four checks were repeated by the snd_seq_ioctl_unsubscribe_port() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index 8e804ff784ed..ba26d622cb71 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1465,35 +1465,35 @@ static int snd_seq_ioctl_unsubscribe_port(struct snd_seq_client *client,
 {
 	struct snd_seq_port_subscribe *subs = arg;
 	int result = -ENXIO;
-	struct snd_seq_client *receiver = NULL, *sender = NULL;
-	struct snd_seq_client_port *sport = NULL, *dport = NULL;
+	struct snd_seq_client *receiver, *sender;
+	struct snd_seq_client_port *sport, *dport;
 
 	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) = NULL)
-		goto __end;
+		goto exit;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
-		goto __end;
+		goto unlock_receiver;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
-		goto __end;
+		goto unlock_sender;
 	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) = NULL)
-		goto __end;
+		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
 	if (result < 0)
-		goto __end;
+		goto unlock_dport;
 
 	result = snd_seq_port_disconnect(client, sender, sport, receiver, dport, subs);
 	if (! result) /* broadcast announce */
 		snd_seq_client_notify_subscription(SNDRV_SEQ_ADDRESS_SUBSCRIBERS, 0,
 						   subs, SNDRV_SEQ_EVENT_PORT_UNSUBSCRIBED);
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (dport)
-		snd_seq_port_unlock(dport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-	if (receiver)
-		snd_seq_client_unlock(receiver);
+unlock_dport:
+	snd_seq_port_unlock(dport);
+unlock_sport:
+	snd_seq_port_unlock(sport);
+unlock_sender:
+	snd_seq_client_unlock(sender);
+unlock_receiver:
+	snd_seq_client_unlock(receiver);
+exit:
 	return result;
 }
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 4/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:24   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:24 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:06:38 +0100

Four checks were repeated by the snd_seq_ioctl_subscribe_port() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index ba26d622cb71..b9518e7cb623 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1423,36 +1423,36 @@ static int snd_seq_ioctl_subscribe_port(struct snd_seq_client *client,
 {
 	struct snd_seq_port_subscribe *subs = arg;
 	int result = -EINVAL;
-	struct snd_seq_client *receiver = NULL, *sender = NULL;
-	struct snd_seq_client_port *sport = NULL, *dport = NULL;
+	struct snd_seq_client *receiver, *sender;
+	struct snd_seq_client_port *sport, *dport;
 
 	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) == NULL)
-		goto __end;
+		goto exit;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
-		goto __end;
+		goto unlock_receiver;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
-		goto __end;
+		goto unlock_sender;
 	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) == NULL)
-		goto __end;
+		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
 	if (result < 0)
-		goto __end;
+		goto unlock_dport;
 
 	/* connect them */
 	result = snd_seq_port_connect(client, sender, sport, receiver, dport, subs);
 	if (! result) /* broadcast announce */
 		snd_seq_client_notify_subscription(SNDRV_SEQ_ADDRESS_SUBSCRIBERS, 0,
 						   subs, SNDRV_SEQ_EVENT_PORT_SUBSCRIBED);
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (dport)
-		snd_seq_port_unlock(dport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-	if (receiver)
-		snd_seq_client_unlock(receiver);
+unlock_dport:
+	snd_seq_port_unlock(dport);
+unlock_sport:
+	snd_seq_port_unlock(sport);
+unlock_sender:
+	snd_seq_client_unlock(sender);
+unlock_receiver:
+	snd_seq_client_unlock(receiver);
+exit:
 	return result;
 }
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 4/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
@ 2017-01-24 10:24   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:24 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:06:38 +0100

Four checks were repeated by the snd_seq_ioctl_subscribe_port() function
despite of pointer determinations for the used variables at the beginning.

* Adjust jump targets according to the Linux coding style convention.

* Delete extra variable initialisations and the repeated checks
  which became unnecessary with this refactoring.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index ba26d622cb71..b9518e7cb623 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -1423,36 +1423,36 @@ static int snd_seq_ioctl_subscribe_port(struct snd_seq_client *client,
 {
 	struct snd_seq_port_subscribe *subs = arg;
 	int result = -EINVAL;
-	struct snd_seq_client *receiver = NULL, *sender = NULL;
-	struct snd_seq_client_port *sport = NULL, *dport = NULL;
+	struct snd_seq_client *receiver, *sender;
+	struct snd_seq_client_port *sport, *dport;
 
 	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) = NULL)
-		goto __end;
+		goto exit;
 	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
-		goto __end;
+		goto unlock_receiver;
 	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
-		goto __end;
+		goto unlock_sender;
 	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) = NULL)
-		goto __end;
+		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
 	if (result < 0)
-		goto __end;
+		goto unlock_dport;
 
 	/* connect them */
 	result = snd_seq_port_connect(client, sender, sport, receiver, dport, subs);
 	if (! result) /* broadcast announce */
 		snd_seq_client_notify_subscription(SNDRV_SEQ_ADDRESS_SUBSCRIBERS, 0,
 						   subs, SNDRV_SEQ_EVENT_PORT_SUBSCRIBED);
-      __end:
-      	if (sport)
-		snd_seq_port_unlock(sport);
-	if (dport)
-		snd_seq_port_unlock(dport);
-	if (sender)
-		snd_seq_client_unlock(sender);
-	if (receiver)
-		snd_seq_client_unlock(receiver);
+unlock_dport:
+	snd_seq_port_unlock(dport);
+unlock_sport:
+	snd_seq_port_unlock(sport);
+unlock_sender:
+	snd_seq_client_unlock(sender);
+unlock_receiver:
+	snd_seq_client_unlock(receiver);
+exit:
 	return result;
 }
 
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 5/7] ALSA: seq: Adjust 16 function calls together with a variable assignment
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:25   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:25 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:44:22 +0100

The script "checkpatch.pl" pointed information out like the following.

ERROR: do not use assignment in if condition

Thus fix the affected source code places.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 52 ++++++++++++++++++++++++++++--------------
 1 file changed, 35 insertions(+), 17 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index b9518e7cb623..519968841ccc 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -400,7 +400,11 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
 	if (snd_BUG_ON(!client))
 		return -ENXIO;
 
-	if (!client->accept_input || (fifo = client->data.user.fifo) == NULL)
+	if (!client->accept_input)
+		return -ENXIO;
+
+	fifo = client->data.user.fifo;
+	if (!fifo)
 		return -ENXIO;
 
 	if (atomic_read(&fifo->overflow) > 0) {
@@ -419,9 +423,9 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
 		int nonblock;
 
 		nonblock = (file->f_flags & O_NONBLOCK) || result > 0;
-		if ((err = snd_seq_fifo_cell_out(fifo, &cell, nonblock)) < 0) {
+		err = snd_seq_fifo_cell_out(fifo, &cell, nonblock);
+		if (err < 0)
 			break;
-		}
 		if (snd_seq_ev_is_variable(&cell->event)) {
 			struct snd_seq_event tmpev;
 			tmpev = cell->event;
@@ -948,7 +952,8 @@ static int snd_seq_client_enqueue_event(struct snd_seq_client *client,
 		return err;
 
 	/* we got a cell. enqueue it. */
-	if ((err = snd_seq_enqueue_event(cell, atomic, hop)) < 0) {
+	err = snd_seq_enqueue_event(cell, atomic, hop);
+	if (err < 0) {
 		snd_seq_cell_free(cell);
 		return err;
 	}
@@ -1273,7 +1278,8 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg)
 		return -EINVAL;
 	}
 	if (client->type == KERNEL_CLIENT) {
-		if ((callback = info->kernel) != NULL) {
+		callback = info->kernel;
+		if (callback) {
 			if (callback->owner)
 				port->owner = callback->owner;
 			port->private_data = callback->private_data;
@@ -1426,13 +1432,17 @@ static int snd_seq_ioctl_subscribe_port(struct snd_seq_client *client,
 	struct snd_seq_client *receiver, *sender;
 	struct snd_seq_client_port *sport, *dport;
 
-	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) == NULL)
+	receiver = snd_seq_client_use_ptr(subs->dest.client);
+	if (!receiver)
 		goto exit;
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto unlock_receiver;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_sender;
-	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) == NULL)
+	dport = snd_seq_port_use_ptr(receiver, subs->dest.port);
+	if (!dport)
 		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
@@ -1468,13 +1478,17 @@ static int snd_seq_ioctl_unsubscribe_port(struct snd_seq_client *client,
 	struct snd_seq_client *receiver, *sender;
 	struct snd_seq_client_port *sport, *dport;
 
-	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) == NULL)
+	receiver = snd_seq_client_use_ptr(subs->dest.client);
+	if (!receiver)
 		goto exit;
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto unlock_receiver;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_sender;
-	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) == NULL)
+	dport = snd_seq_port_use_ptr(receiver, subs->dest.port);
+	if (!dport)
 		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
@@ -1896,9 +1910,11 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 	struct snd_seq_client_port *sport;
 	struct snd_seq_subscribers *p;
 
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) == NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto exit;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) == NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_client;
 	p = snd_seq_port_get_subscription(&sport->c_src, &subs->dest);
 	if (p) {
@@ -1928,9 +1944,11 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 	struct list_head *p;
 	int i;
 
-	if ((cptr = snd_seq_client_use_ptr(subs->root.client)) == NULL)
+	cptr = snd_seq_client_use_ptr(subs->root.client);
+	if (!cptr)
 		goto exit;
-	if ((port = snd_seq_port_use_ptr(cptr, subs->root.port)) == NULL)
+	port = snd_seq_port_use_ptr(cptr, subs->root.port);
+	if (!port)
 		goto unlock_client;
 
 	switch (subs->type) {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 5/7] ALSA: seq: Adjust 16 function calls together with a variable assignment
@ 2017-01-24 10:25   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:25 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 09:44:22 +0100

The script "checkpatch.pl" pointed information out like the following.

ERROR: do not use assignment in if condition

Thus fix the affected source code places.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/core/seq/seq_clientmgr.c | 52 ++++++++++++++++++++++++++++--------------
 1 file changed, 35 insertions(+), 17 deletions(-)

diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
index b9518e7cb623..519968841ccc 100644
--- a/sound/core/seq/seq_clientmgr.c
+++ b/sound/core/seq/seq_clientmgr.c
@@ -400,7 +400,11 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
 	if (snd_BUG_ON(!client))
 		return -ENXIO;
 
-	if (!client->accept_input || (fifo = client->data.user.fifo) = NULL)
+	if (!client->accept_input)
+		return -ENXIO;
+
+	fifo = client->data.user.fifo;
+	if (!fifo)
 		return -ENXIO;
 
 	if (atomic_read(&fifo->overflow) > 0) {
@@ -419,9 +423,9 @@ static ssize_t snd_seq_read(struct file *file, char __user *buf, size_t count,
 		int nonblock;
 
 		nonblock = (file->f_flags & O_NONBLOCK) || result > 0;
-		if ((err = snd_seq_fifo_cell_out(fifo, &cell, nonblock)) < 0) {
+		err = snd_seq_fifo_cell_out(fifo, &cell, nonblock);
+		if (err < 0)
 			break;
-		}
 		if (snd_seq_ev_is_variable(&cell->event)) {
 			struct snd_seq_event tmpev;
 			tmpev = cell->event;
@@ -948,7 +952,8 @@ static int snd_seq_client_enqueue_event(struct snd_seq_client *client,
 		return err;
 
 	/* we got a cell. enqueue it. */
-	if ((err = snd_seq_enqueue_event(cell, atomic, hop)) < 0) {
+	err = snd_seq_enqueue_event(cell, atomic, hop);
+	if (err < 0) {
 		snd_seq_cell_free(cell);
 		return err;
 	}
@@ -1273,7 +1278,8 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg)
 		return -EINVAL;
 	}
 	if (client->type = KERNEL_CLIENT) {
-		if ((callback = info->kernel) != NULL) {
+		callback = info->kernel;
+		if (callback) {
 			if (callback->owner)
 				port->owner = callback->owner;
 			port->private_data = callback->private_data;
@@ -1426,13 +1432,17 @@ static int snd_seq_ioctl_subscribe_port(struct snd_seq_client *client,
 	struct snd_seq_client *receiver, *sender;
 	struct snd_seq_client_port *sport, *dport;
 
-	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) = NULL)
+	receiver = snd_seq_client_use_ptr(subs->dest.client);
+	if (!receiver)
 		goto exit;
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto unlock_receiver;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_sender;
-	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) = NULL)
+	dport = snd_seq_port_use_ptr(receiver, subs->dest.port);
+	if (!dport)
 		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
@@ -1468,13 +1478,17 @@ static int snd_seq_ioctl_unsubscribe_port(struct snd_seq_client *client,
 	struct snd_seq_client *receiver, *sender;
 	struct snd_seq_client_port *sport, *dport;
 
-	if ((receiver = snd_seq_client_use_ptr(subs->dest.client)) = NULL)
+	receiver = snd_seq_client_use_ptr(subs->dest.client);
+	if (!receiver)
 		goto exit;
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto unlock_receiver;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_sender;
-	if ((dport = snd_seq_port_use_ptr(receiver, subs->dest.port)) = NULL)
+	dport = snd_seq_port_use_ptr(receiver, subs->dest.port);
+	if (!dport)
 		goto unlock_sport;
 
 	result = check_subscription_permission(client, sport, dport, subs);
@@ -1896,9 +1910,11 @@ static int snd_seq_ioctl_get_subscription(struct snd_seq_client *client,
 	struct snd_seq_client_port *sport;
 	struct snd_seq_subscribers *p;
 
-	if ((sender = snd_seq_client_use_ptr(subs->sender.client)) = NULL)
+	sender = snd_seq_client_use_ptr(subs->sender.client);
+	if (!sender)
 		goto exit;
-	if ((sport = snd_seq_port_use_ptr(sender, subs->sender.port)) = NULL)
+	sport = snd_seq_port_use_ptr(sender, subs->sender.port);
+	if (!sport)
 		goto unlock_client;
 	p = snd_seq_port_get_subscription(&sport->c_src, &subs->dest);
 	if (p) {
@@ -1928,9 +1944,11 @@ static int snd_seq_ioctl_query_subs(struct snd_seq_client *client, void *arg)
 	struct list_head *p;
 	int i;
 
-	if ((cptr = snd_seq_client_use_ptr(subs->root.client)) = NULL)
+	cptr = snd_seq_client_use_ptr(subs->root.client);
+	if (!cptr)
 		goto exit;
-	if ((port = snd_seq_port_use_ptr(cptr, subs->root.port)) = NULL)
+	port = snd_seq_port_use_ptr(cptr, subs->root.port);
+	if (!port)
 		goto unlock_client;
 
 	switch (subs->type) {
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_open()
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:26   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:26 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 10:05:29 +0100

A local variable was set to an error code in two cases before a concrete
error situation was detected. Thus move the corresponding assignments into
if branches to indicate a software failure there.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/oss/dmasound/dmasound_core.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index f4ee85a4c42f..2bdd1d619a7f 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -1269,13 +1269,15 @@ static int state_open(struct inode *inode, struct file *file)
 	int ret;
 
 	mutex_lock(&dmasound_core_mutex);
-	ret = -EBUSY;
-	if (state.busy)
+	if (state.busy) {
+		ret = -EBUSY;
 		goto out;
+	}
 
-	ret = -ENODEV;
-	if (!try_module_get(dmasound.mach.owner))
+	if (!try_module_get(dmasound.mach.owner)) {
+		ret = -ENODEV;
 		goto out;
+	}
 
 	state.ptr = 0;
 	state.busy = 1;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_open()
@ 2017-01-24 10:26   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:26 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 10:05:29 +0100

A local variable was set to an error code in two cases before a concrete
error situation was detected. Thus move the corresponding assignments into
if branches to indicate a software failure there.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/oss/dmasound/dmasound_core.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index f4ee85a4c42f..2bdd1d619a7f 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -1269,13 +1269,15 @@ static int state_open(struct inode *inode, struct file *file)
 	int ret;
 
 	mutex_lock(&dmasound_core_mutex);
-	ret = -EBUSY;
-	if (state.busy)
+	if (state.busy) {
+		ret = -EBUSY;
 		goto out;
+	}
 
-	ret = -ENODEV;
-	if (!try_module_get(dmasound.mach.owner))
+	if (!try_module_get(dmasound.mach.owner)) {
+		ret = -ENODEV;
 		goto out;
+	}
 
 	state.ptr = 0;
 	state.busy = 1;
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 7/7] dmasound_core: Adjust six function calls together with a variable assignment
  2017-01-24 10:19 ` SF Markus Elfring
@ 2017-01-24 10:27   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:27 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 10:34:47 +0100

The script "checkpatch.pl" pointed information out like the following.

ERROR: do not use assignment in if condition

Thus fix affected source code places.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/oss/dmasound/dmasound_core.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index 2bdd1d619a7f..a20bf3b94329 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -576,7 +576,9 @@ static ssize_t sq_write(struct file *file, const char __user *src, size_t uLeft,
 	*/
 
 	if (write_sq.locked == 0) {
-		if ((uWritten = sq_setup(&write_sq)) < 0) return uWritten ;
+		uWritten = sq_setup(&write_sq);
+		if (uWritten < 0)
+			return uWritten;
 		uWritten = 0 ;
 	}
 
@@ -675,7 +677,8 @@ static unsigned int sq_poll(struct file *file, struct poll_table_struct *wait)
 	int retVal;
 	
 	if (write_sq.locked == 0) {
-		if ((retVal = sq_setup(&write_sq)) < 0)
+		retVal = sq_setup(&write_sq);
+		if (retVal < 0)
 			return retVal;
 		return 0;
 	}
@@ -736,7 +739,8 @@ static int sq_open2(struct sound_queue *sq, struct file *file, fmode_t mode,
 		   can't be changed at the moment - but _could_ be perhaps
 		   in the setfragments ioctl.
 		*/
-		if (( rc = sq_allocate_buffers(sq, numbufs, bufsize))) {
+		rc = sq_allocate_buffers(sq, numbufs, bufsize);
+		if (rc) {
 #if 0 /* blocking open() */
 			sq_wake_up(sq, file, mode);
 #else
@@ -1407,12 +1411,14 @@ int dmasound_init(void)
 	/* Set up sound queue, /dev/audio and /dev/dsp. */
 
 	/* Set default settings. */
-	if ((res = sq_init()) < 0)
-		return res ;
+	res = sq_init();
+	if (res < 0)
+		return res;
 
 	/* Set up /dev/sndstat. */
-	if ((res = state_init()) < 0)
-		return res ;
+	res = state_init();
+	if (res < 0)
+		return res;
 
 	/* Set up /dev/mixer. */
 	mixer_init();
@@ -1485,7 +1491,8 @@ static int dmasound_setup(char *str)
 			numWriteBufs = ints[1];
 		/* fall through */
 	case 1:
-		if ((size = ints[2]) < 256) /* check for small buffer specs */
+		size = ints[2];
+		if (size < 256) /* check for small buffer specs */
 			size <<= 10 ;
                 if (size < MIN_BUFSIZE || size > MAX_BUFSIZE)
                         printk("dmasound_setup: invalid write buffer size, using default = %d\n", writeBufSize);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 7/7] dmasound_core: Adjust six function calls together with a variable assignment
@ 2017-01-24 10:27   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-01-24 10:27 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 24 Jan 2017 10:34:47 +0100

The script "checkpatch.pl" pointed information out like the following.

ERROR: do not use assignment in if condition

Thus fix affected source code places.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 sound/oss/dmasound/dmasound_core.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index 2bdd1d619a7f..a20bf3b94329 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -576,7 +576,9 @@ static ssize_t sq_write(struct file *file, const char __user *src, size_t uLeft,
 	*/
 
 	if (write_sq.locked = 0) {
-		if ((uWritten = sq_setup(&write_sq)) < 0) return uWritten ;
+		uWritten = sq_setup(&write_sq);
+		if (uWritten < 0)
+			return uWritten;
 		uWritten = 0 ;
 	}
 
@@ -675,7 +677,8 @@ static unsigned int sq_poll(struct file *file, struct poll_table_struct *wait)
 	int retVal;
 	
 	if (write_sq.locked = 0) {
-		if ((retVal = sq_setup(&write_sq)) < 0)
+		retVal = sq_setup(&write_sq);
+		if (retVal < 0)
 			return retVal;
 		return 0;
 	}
@@ -736,7 +739,8 @@ static int sq_open2(struct sound_queue *sq, struct file *file, fmode_t mode,
 		   can't be changed at the moment - but _could_ be perhaps
 		   in the setfragments ioctl.
 		*/
-		if (( rc = sq_allocate_buffers(sq, numbufs, bufsize))) {
+		rc = sq_allocate_buffers(sq, numbufs, bufsize);
+		if (rc) {
 #if 0 /* blocking open() */
 			sq_wake_up(sq, file, mode);
 #else
@@ -1407,12 +1411,14 @@ int dmasound_init(void)
 	/* Set up sound queue, /dev/audio and /dev/dsp. */
 
 	/* Set default settings. */
-	if ((res = sq_init()) < 0)
-		return res ;
+	res = sq_init();
+	if (res < 0)
+		return res;
 
 	/* Set up /dev/sndstat. */
-	if ((res = state_init()) < 0)
-		return res ;
+	res = state_init();
+	if (res < 0)
+		return res;
 
 	/* Set up /dev/mixer. */
 	mixer_init();
@@ -1485,7 +1491,8 @@ static int dmasound_setup(char *str)
 			numWriteBufs = ints[1];
 		/* fall through */
 	case 1:
-		if ((size = ints[2]) < 256) /* check for small buffer specs */
+		size = ints[2];
+		if (size < 256) /* check for small buffer specs */
 			size <<= 10 ;
                 if (size < MIN_BUFSIZE || size > MAX_BUFSIZE)
                         printk("dmasound_setup: invalid write buffer size, using default = %d\n", writeBufSize);
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [alsa-devel] [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_open()
  2017-01-24 10:26   ` SF Markus Elfring
@ 2017-01-25  7:40     ` Clemens Ladisch
  -1 siblings, 0 replies; 21+ messages in thread
From: Clemens Ladisch @ 2017-01-25  7:40 UTC (permalink / raw)
  To: SF Markus Elfring, alsa-devel
  Cc: Jaroslav Kysela, Martin Koegler, Takashi Iwai, Takashi Sakamoto,
	kernel-janitors, LKML

SF Markus Elfring wrote:
> A local variable was set to an error code in two cases before a concrete
> error situation was detected.

And why would that be a problem?

http://yarchive.net/comp/linux/error_jumps.html

> -	ret = -EBUSY;
> -	if (state.busy)
> +	if (state.busy) {
> +		ret = -EBUSY;
>  		goto out;
> +	}


Regards,
Clemens

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [alsa-devel] [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_ope
@ 2017-01-25  7:40     ` Clemens Ladisch
  0 siblings, 0 replies; 21+ messages in thread
From: Clemens Ladisch @ 2017-01-25  7:40 UTC (permalink / raw)
  To: SF Markus Elfring, alsa-devel
  Cc: Jaroslav Kysela, Martin Koegler, Takashi Iwai, Takashi Sakamoto,
	kernel-janitors, LKML

SF Markus Elfring wrote:
> A local variable was set to an error code in two cases before a concrete
> error situation was detected.

And why would that be a problem?

http://yarchive.net/comp/linux/error_jumps.html

> -	ret = -EBUSY;
> -	if (state.busy)
> +	if (state.busy) {
> +		ret = -EBUSY;
>  		goto out;
> +	}


Regards,
Clemens

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/7] ALSA: Fine-tuning for several function implementations
  2017-01-24 10:19 ` SF Markus Elfring
  (?)
@ 2017-11-14 11:48   ` SF Markus Elfring
  -1 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-11-14 11:48 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: LKML, kernel-janitors

> Date: Tue, 24 Jan 2017 11:02:34 +0100
> 
> Some update suggestions were taken into account
> from static source code analysis.
> 
> Markus Elfring (7):
>   seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
>   seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
>   seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
>   seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
>   seq: Adjust 16 function calls together with a variable assignment
>   dmasound_core: Move two assignments for the variable "ret" in state_open()
>   dmasound_core: Adjust six function calls together with a variable assignment
> 
>  sound/core/seq/seq_clientmgr.c     | 163 ++++++++++++++++++++-----------------
>  sound/oss/dmasound/dmasound_core.c |  33 +++++---
>  2 files changed, 109 insertions(+), 87 deletions(-)

Are these update suggestions worth for another look?
https://lkml.org/lkml/2017/1/24/292

Regards,
Markus

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/7] ALSA: Fine-tuning for several function implementations
@ 2017-11-14 11:48   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-11-14 11:48 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: kernel-janitors, LKML

> Date: Tue, 24 Jan 2017 11:02:34 +0100
> 
> Some update suggestions were taken into account
> from static source code analysis.
> 
> Markus Elfring (7):
>   seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
>   seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
>   seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
>   seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
>   seq: Adjust 16 function calls together with a variable assignment
>   dmasound_core: Move two assignments for the variable "ret" in state_open()
>   dmasound_core: Adjust six function calls together with a variable assignment
> 
>  sound/core/seq/seq_clientmgr.c     | 163 ++++++++++++++++++++-----------------
>  sound/oss/dmasound/dmasound_core.c |  33 +++++---
>  2 files changed, 109 insertions(+), 87 deletions(-)

Are these update suggestions worth for another look?
https://lkml.org/lkml/2017/1/24/292

Regards,
Markus

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 0/7] ALSA: Fine-tuning for several function implementations
@ 2017-11-14 11:48   ` SF Markus Elfring
  0 siblings, 0 replies; 21+ messages in thread
From: SF Markus Elfring @ 2017-11-14 11:48 UTC (permalink / raw)
  To: alsa-devel, Clemens Ladisch, Jaroslav Kysela, Martin Koegler,
	Takashi Iwai, Takashi Sakamoto
  Cc: kernel-janitors, LKML

> Date: Tue, 24 Jan 2017 11:02:34 +0100
> 
> Some update suggestions were taken into account
> from static source code analysis.
> 
> Markus Elfring (7):
>   seq: Delete unnecessary checks in snd_seq_ioctl_query_subs()
>   seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription()
>   seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port()
>   seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port()
>   seq: Adjust 16 function calls together with a variable assignment
>   dmasound_core: Move two assignments for the variable "ret" in state_open()
>   dmasound_core: Adjust six function calls together with a variable assignment
> 
>  sound/core/seq/seq_clientmgr.c     | 163 ++++++++++++++++++++-----------------
>  sound/oss/dmasound/dmasound_core.c |  33 +++++---
>  2 files changed, 109 insertions(+), 87 deletions(-)

Are these update suggestions worth for another look?
https://lkml.org/lkml/2017/1/24/292

Regards,
Markus

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2017-11-14 11:49 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-24 10:19 [PATCH 0/7] ALSA: Fine-tuning for several function implementations SF Markus Elfring
2017-01-24 10:19 ` SF Markus Elfring
2017-01-24 10:21 ` [PATCH 1/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_query_subs() SF Markus Elfring
2017-01-24 10:21   ` SF Markus Elfring
2017-01-24 10:22 ` [PATCH 2/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_get_subscription() SF Markus Elfring
2017-01-24 10:22   ` SF Markus Elfring
2017-01-24 10:23 ` [PATCH 3/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_unsubscribe_port() SF Markus Elfring
2017-01-24 10:23   ` SF Markus Elfring
2017-01-24 10:24 ` [PATCH 4/7] ALSA: seq: Delete unnecessary checks in snd_seq_ioctl_subscribe_port() SF Markus Elfring
2017-01-24 10:24   ` SF Markus Elfring
2017-01-24 10:25 ` [PATCH 5/7] ALSA: seq: Adjust 16 function calls together with a variable assignment SF Markus Elfring
2017-01-24 10:25   ` SF Markus Elfring
2017-01-24 10:26 ` [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_open() SF Markus Elfring
2017-01-24 10:26   ` SF Markus Elfring
2017-01-25  7:40   ` [alsa-devel] " Clemens Ladisch
2017-01-25  7:40     ` [alsa-devel] [PATCH 6/7] dmasound_core: Move two assignments for the variable "ret" in state_ope Clemens Ladisch
2017-01-24 10:27 ` [PATCH 7/7] dmasound_core: Adjust six function calls together with a variable assignment SF Markus Elfring
2017-01-24 10:27   ` SF Markus Elfring
2017-11-14 11:48 ` [PATCH 0/7] ALSA: Fine-tuning for several function implementations SF Markus Elfring
2017-11-14 11:48   ` SF Markus Elfring
2017-11-14 11:48   ` SF Markus Elfring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.