soc: microchip: mpfs: simplify error handling in mpfs_blocking_transaction()
authorConor Dooley <conor.dooley@microchip.com>
Tue, 7 Mar 2023 20:22:57 +0000 (20:22 +0000)
committerConor Dooley <conor.dooley@microchip.com>
Mon, 3 Apr 2023 18:26:59 +0000 (19:26 +0100)
The error handling has a kinda weird nested-if setup that is not really
adding anything. Switch it to more of an early return arrangement as a
predatory step for adding different handing for timeouts and failed
services.

Tested-by: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
drivers/soc/microchip/mpfs-sys-controller.c

index 738ecd6..e61ba9b 100644 (file)
@@ -32,28 +32,27 @@ struct mpfs_sys_controller {
 int mpfs_blocking_transaction(struct mpfs_sys_controller *sys_controller, struct mpfs_mss_msg *msg)
 {
        unsigned long timeout = msecs_to_jiffies(MPFS_SYS_CTRL_TIMEOUT_MS);
-       int ret, err;
+       int ret;
 
-       err = mutex_lock_interruptible(&transaction_lock);
-       if (err)
-               return err;
+       ret = mutex_lock_interruptible(&transaction_lock);
+       if (ret)
+               return ret;
 
        reinit_completion(&sys_controller->c);
 
        ret = mbox_send_message(sys_controller->chan, msg);
-       if (ret >= 0) {
-               if (wait_for_completion_timeout(&sys_controller->c, timeout)) {
-                       ret = 0;
-               } else {
-                       ret = -ETIMEDOUT;
-                       dev_warn(sys_controller->client.dev,
-                                "MPFS sys controller transaction timeout\n");
-               }
+       if (ret < 0)
+               goto out;
+
+       if (!wait_for_completion_timeout(&sys_controller->c, timeout)) {
+               ret = -ETIMEDOUT;
+               dev_warn(sys_controller->client.dev, "MPFS sys controller transaction timeout\n");
        } else {
-               dev_err(sys_controller->client.dev,
-                       "mpfs sys controller transaction returned %d\n", ret);
+               /* mbox_send_message() returns positive integers on success */
+               ret = 0;
        }
 
+out:
        mutex_unlock(&transaction_lock);
 
        return ret;