All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] staging: bcm2835-audio: fix coding style issues
@ 2017-03-06 15:02 Aishwarya Pant
  2017-03-06 15:02 ` [PATCH 1/4] staging: bcm2835-audio: Replace kmalloc with kzalloc Aishwarya Pant
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Aishwarya Pant @ 2017-03-06 15:02 UTC (permalink / raw)
  To: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list
  Cc: outreachy-kernel

This patchset makes the following changes:
	- Replace kmalloc and memset with kzalloc
	- Replace null return value with PTR_ERR values
	- Propagate the PTR_ERR values forward instead of a hardcoded
	  value for easier debugging
	- Replace if (success) else { } after kmalloc with if (error) to
	  fail fast.

Aishwarya Pant (4):
  staging: bcm2835-audio: Replace kmalloc with kzalloc
  staging: bcm2835-audio: replace null with error pointer value
  staging: bcm2835-audio: propagate PTR_ERR value instead of -EPERM
  staging: bcm2835-audio: use conditional only for error case

 .../vc04_services/bcm2835-audio/bcm2835-vchiq.c    | 59 +++++++++++-----------
 1 file changed, 29 insertions(+), 30 deletions(-)

-- 
2.7.4



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

* [PATCH 1/4] staging: bcm2835-audio: Replace kmalloc with kzalloc
  2017-03-06 15:02 [PATCH 0/4] staging: bcm2835-audio: fix coding style issues Aishwarya Pant
@ 2017-03-06 15:02 ` Aishwarya Pant
  2017-03-06 15:03 ` [PATCH 2/4] staging: bcm2835-audio: replace null with error pointer value Aishwarya Pant
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Aishwarya Pant @ 2017-03-06 15:02 UTC (permalink / raw)
  To: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list
  Cc: outreachy-kernel

Replace kmalloc and memset with kzalloc.

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index c54bef3..005e287 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -290,11 +290,10 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance,
 		return NULL;
 	}
 	/* Allocate memory for this instance */
-	instance = kmalloc(sizeof(*instance), GFP_KERNEL);
+	instance = kzalloc(sizeof(*instance), GFP_KERNEL);
 	if (!instance)
 		return NULL;
 
-	memset(instance, 0, sizeof(*instance));
 	instance->num_connections = num_connections;
 
 	/* Create a lock for exclusive, serialized VCHI connection access */
-- 
2.7.4



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

* [PATCH 2/4] staging: bcm2835-audio: replace null with error pointer value
  2017-03-06 15:02 [PATCH 0/4] staging: bcm2835-audio: fix coding style issues Aishwarya Pant
  2017-03-06 15:02 ` [PATCH 1/4] staging: bcm2835-audio: Replace kmalloc with kzalloc Aishwarya Pant
@ 2017-03-06 15:03 ` Aishwarya Pant
  2017-03-06 15:03 ` [PATCH 3/4] staging: bcm2835-audio: propagate PTR_ERR value instead of -EPERM Aishwarya Pant
  2017-03-06 15:04 ` [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case Aishwarya Pant
  3 siblings, 0 replies; 6+ messages in thread
From: Aishwarya Pant @ 2017-03-06 15:03 UTC (permalink / raw)
  To: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list
  Cc: outreachy-kernel

This patch replaces NULL values returned by vc_vchi_audio_init(...) with
error pointer values:
	- Return ERR_PTR(-EINVAL) when too many instances of audio
	  service are initialised
	- Return ERR_PTR(-ENOMEM) when kzalloc fails
	- RETURN ERR_PTR(-EPERM) when vchi connections fail to open

Similarly, a NULL check where vc_vchi_audio_init(...) is called is
replaced by IS_ERR(..)

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index 005e287..d2686b4 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -287,12 +287,12 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance,
 		LOG_ERR("%s: unsupported number of connections %u (max=%u)\n",
 			__func__, num_connections, VCHI_MAX_NUM_CONNECTIONS);
 
-		return NULL;
+		return ERR_PTR(-EINVAL);
 	}
 	/* Allocate memory for this instance */
 	instance = kzalloc(sizeof(*instance), GFP_KERNEL);
 	if (!instance)
-		return NULL;
+		return ERR_PTR(-ENOMEM);
 
 	instance->num_connections = num_connections;
 
@@ -341,7 +341,7 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance,
 	kfree(instance);
 	LOG_ERR("%s: error\n", __func__);
 
-	return NULL;
+	return ERR_PTR(-EPERM);
 }
 
 static int vc_vchi_audio_deinit(struct bcm2835_audio_instance *instance)
@@ -432,7 +432,7 @@ static int bcm2835_audio_open_connection(struct bcm2835_alsa_stream *alsa_stream
 	/* Initialize an instance of the audio service */
 	instance = vc_vchi_audio_init(vchi_instance, &vchi_connection, 1);
 
-	if (!instance) {
+	if (IS_ERR(instance)) {
 		LOG_ERR("%s: failed to initialize audio service\n", __func__);
 
 		ret = -EPERM;
-- 
2.7.4



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

* [PATCH 3/4] staging: bcm2835-audio: propagate PTR_ERR value instead of -EPERM
  2017-03-06 15:02 [PATCH 0/4] staging: bcm2835-audio: fix coding style issues Aishwarya Pant
  2017-03-06 15:02 ` [PATCH 1/4] staging: bcm2835-audio: Replace kmalloc with kzalloc Aishwarya Pant
  2017-03-06 15:03 ` [PATCH 2/4] staging: bcm2835-audio: replace null with error pointer value Aishwarya Pant
@ 2017-03-06 15:03 ` Aishwarya Pant
  2017-03-06 15:04 ` [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case Aishwarya Pant
  3 siblings, 0 replies; 6+ messages in thread
From: Aishwarya Pant @ 2017-03-06 15:03 UTC (permalink / raw)
  To: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list
  Cc: outreachy-kernel

It is better to propagate PTR_ERR value instead of a hardcoded value
(-EPERM here)

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index d2686b4..c5f3be8 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -435,7 +435,7 @@ static int bcm2835_audio_open_connection(struct bcm2835_alsa_stream *alsa_stream
 	if (IS_ERR(instance)) {
 		LOG_ERR("%s: failed to initialize audio service\n", __func__);
 
-		ret = -EPERM;
+		ret = PTR_ERR(instance);
 		goto err_free_mem;
 	}
 
-- 
2.7.4



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

* [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case
  2017-03-06 15:02 [PATCH 0/4] staging: bcm2835-audio: fix coding style issues Aishwarya Pant
                   ` (2 preceding siblings ...)
  2017-03-06 15:03 ` [PATCH 3/4] staging: bcm2835-audio: propagate PTR_ERR value instead of -EPERM Aishwarya Pant
@ 2017-03-06 15:04 ` Aishwarya Pant
  2017-03-06 16:36   ` [Outreachy kernel] " Julia Lawall
  3 siblings, 1 reply; 6+ messages in thread
From: Aishwarya Pant @ 2017-03-06 15:04 UTC (permalink / raw)
  To: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list
  Cc: outreachy-kernel

This patch refactors conditional to check if memory allocation has
failed and immediately returns (-ENOMEM); the redundant if block for
success case is removed.

Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
---
 .../vc04_services/bcm2835-audio/bcm2835-vchiq.c    | 46 +++++++++++-----------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
index c5f3be8..75a43a5 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
@@ -139,15 +139,15 @@ int bcm2835_audio_start(struct bcm2835_alsa_stream *alsa_stream)
 
 		work = kmalloc(sizeof(*work), GFP_ATOMIC);
 		/*--- Queue some work (item 1) ---*/
-		if (work) {
-			INIT_WORK(&work->my_work, my_wq_function);
-			work->alsa_stream = alsa_stream;
-			work->cmd = BCM2835_AUDIO_START;
-			if (queue_work(alsa_stream->my_wq, &work->my_work))
-				ret = 0;
-		} else {
+		if (!work) {
 			LOG_ERR(" .. Error: NULL work kmalloc\n");
+			return -ENOMEM;
 		}
+		INIT_WORK(&work->my_work, my_wq_function);
+		work->alsa_stream = alsa_stream;
+		work->cmd = BCM2835_AUDIO_START;
+		if (queue_work(alsa_stream->my_wq, &work->my_work))
+			ret = 0;
 	}
 	LOG_DBG(" .. OUT %d\n", ret);
 	return ret;
@@ -163,15 +163,15 @@ int bcm2835_audio_stop(struct bcm2835_alsa_stream *alsa_stream)
 
 		work = kmalloc(sizeof(*work), GFP_ATOMIC);
 		/*--- Queue some work (item 1) ---*/
-		if (work) {
-			INIT_WORK(&work->my_work, my_wq_function);
-			work->alsa_stream = alsa_stream;
-			work->cmd = BCM2835_AUDIO_STOP;
-			if (queue_work(alsa_stream->my_wq, &work->my_work))
-				ret = 0;
-		} else {
+		if (!work) {
 			LOG_ERR(" .. Error: NULL work kmalloc\n");
+			return -ENOMEM;
 		}
+		INIT_WORK(&work->my_work, my_wq_function);
+		work->alsa_stream = alsa_stream;
+		work->cmd = BCM2835_AUDIO_STOP;
+		if (queue_work(alsa_stream->my_wq, &work->my_work))
+			ret = 0;
 	}
 	LOG_DBG(" .. OUT %d\n", ret);
 	return ret;
@@ -188,17 +188,17 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
 
 		work = kmalloc(sizeof(*work), GFP_ATOMIC);
 		/*--- Queue some work (item 1) ---*/
-		if (work) {
-			INIT_WORK(&work->my_work, my_wq_function);
-			work->alsa_stream = alsa_stream;
-			work->cmd = BCM2835_AUDIO_WRITE;
-			work->src = src;
-			work->count = count;
-			if (queue_work(alsa_stream->my_wq, &work->my_work))
-				ret = 0;
-		} else {
+		if (!work) {
 			LOG_ERR(" .. Error: NULL work kmalloc\n");
+			return -ENOMEM;
 		}
+		INIT_WORK(&work->my_work, my_wq_function);
+		work->alsa_stream = alsa_stream;
+		work->cmd = BCM2835_AUDIO_WRITE;
+		work->src = src;
+		work->count = count;
+		if (queue_work(alsa_stream->my_wq, &work->my_work))
+			ret = 0;
 	}
 	LOG_DBG(" .. OUT %d\n", ret);
 	return ret;
-- 
2.7.4



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

* Re: [Outreachy kernel] [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case
  2017-03-06 15:04 ` [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case Aishwarya Pant
@ 2017-03-06 16:36   ` Julia Lawall
  0 siblings, 0 replies; 6+ messages in thread
From: Julia Lawall @ 2017-03-06 16:36 UTC (permalink / raw)
  To: Aishwarya Pant
  Cc: Stephen Warren, Lee Jones, Eric Anholt, Greg Kroah-Hartman,
	Florian Fainelli, Ray Jui, Scott Branden,
	bcm-kernel-feedback-list, outreachy-kernel



On Mon, 6 Mar 2017, Aishwarya Pant wrote:

> This patch refactors conditional to check if memory allocation has
> failed and immediately returns (-ENOMEM); the redundant if block for
> success case is removed.
>
> Signed-off-by: Aishwarya Pant <aishpant@gmail.com>
> ---
>  .../vc04_services/bcm2835-audio/bcm2835-vchiq.c    | 46 +++++++++++-----------
>  1 file changed, 23 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
> index c5f3be8..75a43a5 100644
> --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
> +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c
> @@ -139,15 +139,15 @@ int bcm2835_audio_start(struct bcm2835_alsa_stream *alsa_stream)
>
>  		work = kmalloc(sizeof(*work), GFP_ATOMIC);
>  		/*--- Queue some work (item 1) ---*/
> -		if (work) {
> -			INIT_WORK(&work->my_work, my_wq_function);
> -			work->alsa_stream = alsa_stream;
> -			work->cmd = BCM2835_AUDIO_START;
> -			if (queue_work(alsa_stream->my_wq, &work->my_work))
> -				ret = 0;
> -		} else {
> +		if (!work) {
>  			LOG_ERR(" .. Error: NULL work kmalloc\n");
> +			return -ENOMEM;
>  		}
> +		INIT_WORK(&work->my_work, my_wq_function);
> +		work->alsa_stream = alsa_stream;
> +		work->cmd = BCM2835_AUDIO_START;
> +		if (queue_work(alsa_stream->my_wq, &work->my_work))
> +			ret = 0;

These functions are returning -1 if queue_work fails.  Maybe you can find
a more appropriate value by looking at the defintion.

julia


>  	}
>  	LOG_DBG(" .. OUT %d\n", ret);
>  	return ret;
> @@ -163,15 +163,15 @@ int bcm2835_audio_stop(struct bcm2835_alsa_stream *alsa_stream)
>
>  		work = kmalloc(sizeof(*work), GFP_ATOMIC);
>  		/*--- Queue some work (item 1) ---*/
> -		if (work) {
> -			INIT_WORK(&work->my_work, my_wq_function);
> -			work->alsa_stream = alsa_stream;
> -			work->cmd = BCM2835_AUDIO_STOP;
> -			if (queue_work(alsa_stream->my_wq, &work->my_work))
> -				ret = 0;
> -		} else {
> +		if (!work) {
>  			LOG_ERR(" .. Error: NULL work kmalloc\n");
> +			return -ENOMEM;
>  		}
> +		INIT_WORK(&work->my_work, my_wq_function);
> +		work->alsa_stream = alsa_stream;
> +		work->cmd = BCM2835_AUDIO_STOP;
> +		if (queue_work(alsa_stream->my_wq, &work->my_work))
> +			ret = 0;
>  	}
>  	LOG_DBG(" .. OUT %d\n", ret);
>  	return ret;
> @@ -188,17 +188,17 @@ int bcm2835_audio_write(struct bcm2835_alsa_stream *alsa_stream,
>
>  		work = kmalloc(sizeof(*work), GFP_ATOMIC);
>  		/*--- Queue some work (item 1) ---*/
> -		if (work) {
> -			INIT_WORK(&work->my_work, my_wq_function);
> -			work->alsa_stream = alsa_stream;
> -			work->cmd = BCM2835_AUDIO_WRITE;
> -			work->src = src;
> -			work->count = count;
> -			if (queue_work(alsa_stream->my_wq, &work->my_work))
> -				ret = 0;
> -		} else {
> +		if (!work) {
>  			LOG_ERR(" .. Error: NULL work kmalloc\n");
> +			return -ENOMEM;
>  		}
> +		INIT_WORK(&work->my_work, my_wq_function);
> +		work->alsa_stream = alsa_stream;
> +		work->cmd = BCM2835_AUDIO_WRITE;
> +		work->src = src;
> +		work->count = count;
> +		if (queue_work(alsa_stream->my_wq, &work->my_work))
> +			ret = 0;
>  	}
>  	LOG_DBG(" .. OUT %d\n", ret);
>  	return ret;
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/1e7304c424c82b9f5a03d32aa9dab343b4b70dc4.1488811728.git.aishpant%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>


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

end of thread, other threads:[~2017-03-06 16:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-06 15:02 [PATCH 0/4] staging: bcm2835-audio: fix coding style issues Aishwarya Pant
2017-03-06 15:02 ` [PATCH 1/4] staging: bcm2835-audio: Replace kmalloc with kzalloc Aishwarya Pant
2017-03-06 15:03 ` [PATCH 2/4] staging: bcm2835-audio: replace null with error pointer value Aishwarya Pant
2017-03-06 15:03 ` [PATCH 3/4] staging: bcm2835-audio: propagate PTR_ERR value instead of -EPERM Aishwarya Pant
2017-03-06 15:04 ` [PATCH 4/4] staging: bcm2835-audio: use conditional only for error case Aishwarya Pant
2017-03-06 16:36   ` [Outreachy kernel] " Julia Lawall

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.