]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: bcm2835-audio: replace null with error pointer value
authorAishwarya Pant <aishpant@gmail.com>
Sun, 12 Mar 2017 15:39:00 +0000 (21:09 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 13 Mar 2017 23:57:53 +0000 (07:57 +0800)
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>
drivers/staging/vc04_services/bcm2835-audio/bcm2835-vchiq.c

index 66a35eefa6f93742f9ebf9158f9ede1219067f8b..d596f43c2ceab8e1f76a98e50a63d49be69a1952 100644 (file)
@@ -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 @@ vc_vchi_audio_init(VCHI_INSTANCE_T vchi_instance,
        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;