arm: socfpga: mailbox: Always read mailbox responses before returning status
authorChee Hong Ang <chee.hong.ang@intel.com>
Wed, 12 Aug 2020 01:56:22 +0000 (09:56 +0800)
committerLey Foon Tan <ley.foon.tan@intel.com>
Fri, 9 Oct 2020 09:53:13 +0000 (17:53 +0800)
Mailbox driver should always check for the length of the response
and read the response data before returning the response status to
caller.

Signed-off-by: Chee Hong Ang <chee.hong.ang@intel.com>
Reviewed-by: Ley Foon Tan <ley.foon.tan@intel.com>
arch/arm/mach-socfpga/mailbox_s10.c

index 729d9b0..e8a587f 100644 (file)
@@ -221,9 +221,7 @@ static __always_inline int mbox_send_cmd_common(u8 id, u32 cmd, u8 is_indirect,
                        if ((MBOX_RESP_CLIENT_GET(resp) ==
                             MBOX_CLIENT_ID_UBOOT) &&
                            (MBOX_RESP_ID_GET(resp) == id)) {
-                               ret = MBOX_RESP_ERR_GET(resp);
-                               if (ret)
-                                       return ret;
+                               int resp_err = MBOX_RESP_ERR_GET(resp);
 
                                if (resp_buf_len) {
                                        buf_len = *resp_buf_len;
@@ -252,7 +250,7 @@ static __always_inline int mbox_send_cmd_common(u8 id, u32 cmd, u8 is_indirect,
                                                buf_len--;
                                        }
                                }
-                               return ret;
+                               return resp_err;
                        }
                }
        };