staging: vchiq_core: drop vchiq_status from vchiq_init_state
authorStefan Wahren <stefan.wahren@i2se.com>
Sun, 25 Apr 2021 10:51:03 +0000 (12:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 May 2021 09:19:28 +0000 (11:19 +0200)
Replace the custom set of return values with proper Linux error codes for
vchiq_init_state().

Reviewed-by: Nicolas Saenz Julienne <nsaenz@kernel.org>
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1619347863-16080-12-git-send-email-stefan.wahren@i2se.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h

index a644fe6..c3fbb29 100644 (file)
@@ -132,8 +132,9 @@ int vchiq_platform_init(struct platform_device *pdev, struct vchiq_state *state)
        *(char **)&g_fragments_base[i * g_fragments_size] = NULL;
        sema_init(&g_free_fragments_sema, MAX_FRAGMENTS);
 
-       if (vchiq_init_state(state, vchiq_slot_zero) != VCHIQ_SUCCESS)
-               return -EINVAL;
+       err = vchiq_init_state(state, vchiq_slot_zero);
+       if (err)
+               return err;
 
        g_regs = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(g_regs))
index e150feb..ff85327 100644 (file)
@@ -2162,13 +2162,12 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
 {
        struct vchiq_shared_state *local;
        struct vchiq_shared_state *remote;
-       enum vchiq_status status = VCHIQ_SUCCESS;
        char threadname[16];
        int i, ret;
 
        if (vchiq_states[0]) {
                pr_err("%s: VCHIQ state already initialized\n", __func__);
-               return VCHIQ_ERROR;
+               return -EINVAL;
        }
 
        local = &slot_zero->slave;
@@ -2181,7 +2180,7 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
                else
                        vchiq_loud_error("master/slave mismatch two slaves");
                vchiq_loud_error_footer();
-               return VCHIQ_ERROR;
+               return -EINVAL;
        }
 
        memset(state, 0, sizeof(struct vchiq_state));
@@ -2248,7 +2247,7 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
 
        ret = vchiq_platform_init_state(state);
        if (ret)
-               return VCHIQ_ERROR;
+               return ret;
 
        /*
         * bring up slot handler thread
@@ -2262,7 +2261,7 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
                vchiq_loud_error_header();
                vchiq_loud_error("couldn't create thread %s", threadname);
                vchiq_loud_error_footer();
-               return VCHIQ_ERROR;
+               return PTR_ERR(state->slot_handler_thread);
        }
        set_user_nice(state->slot_handler_thread, -19);
 
@@ -2274,6 +2273,7 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
                vchiq_loud_error_header();
                vchiq_loud_error("couldn't create thread %s", threadname);
                vchiq_loud_error_footer();
+               ret = PTR_ERR(state->recycle_thread);
                goto fail_free_handler_thread;
        }
        set_user_nice(state->recycle_thread, -19);
@@ -2286,6 +2286,7 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
                vchiq_loud_error_header();
                vchiq_loud_error("couldn't create thread %s", threadname);
                vchiq_loud_error_footer();
+               ret = PTR_ERR(state->sync_thread);
                goto fail_free_recycle_thread;
        }
        set_user_nice(state->sync_thread, -20);
@@ -2299,14 +2300,14 @@ vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero)
        /* Indicate readiness to the other side */
        local->initialised = 1;
 
-       return status;
+       return 0;
 
 fail_free_recycle_thread:
        kthread_stop(state->recycle_thread);
 fail_free_handler_thread:
        kthread_stop(state->slot_handler_thread);
 
-       return VCHIQ_ERROR;
+       return ret;
 }
 
 void vchiq_msg_queue_push(unsigned int handle, struct vchiq_header *header)
index bd1f590..89f898c 100644 (file)
@@ -539,7 +539,7 @@ get_conn_state_name(enum vchiq_connstate conn_state);
 extern struct vchiq_slot_zero *
 vchiq_init_slots(void *mem_base, int mem_size);
 
-extern enum vchiq_status
+extern int
 vchiq_init_state(struct vchiq_state *state, struct vchiq_slot_zero *slot_zero);
 
 extern enum vchiq_status