diff options
author | Aishwarya Pant <aishpant@gmail.com> | 2017-03-12 21:09:00 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-14 07:57:53 +0800 |
commit | d676e37fb656a091653b61c38357c228353f09fe (patch) | |
tree | 59f52705fea6b196b0138b9aec7d326227100abe /drivers/staging/vc04_services | |
parent | fc8612b1cbd55d805b5df3c867d21699873a95b3 (diff) |
staging: bcm2835-audio: replace null with error pointer value
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vc04_services')
-rw-r--r-- | drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c index 66a35eefa6f9..d596f43c2cea 100644 --- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c +++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c @@ -280,6 +280,7 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance, unsigned int i; struct bcm2835_audio_instance *instance; int status; + int ret; LOG_DBG("%s: start", __func__); @@ -287,12 +288,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; @@ -321,7 +322,7 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance, if (status) { LOG_ERR("%s: failed to open VCHI service connection (status=%d)\n", __func__, status); - + ret = -EPERM; goto err_close_services; } /* Finished with the service for now */ @@ -341,7 +342,7 @@ err_close_services: kfree(instance); LOG_ERR("%s: error\n", __func__); - return NULL; + return ERR_PTR(ret); } static int vc_vchi_audio_deinit(struct bcm2835_audio_instance *instance) @@ -432,7 +433,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; |