mxs_ocotp: prevent error path from returning success
authorHector Palacios <hector.palacios@digi.com>
Fri, 21 Nov 2014 16:54:42 +0000 (17:54 +0100)
committerStefano Babic <sbabic@denx.de>
Mon, 1 Dec 2014 09:19:41 +0000 (10:19 +0100)
The code may goto 'fail' upon error with 'ret' variable set to an error
code, but this variable was being overwritten by a final preparation
function to restore the HCLK, so success was (in general) returned even
after an error was hit previously.

With this change, the function may now return success even if the final
preparation function fails, but it's probably enough to print a message
because (if successful) the real programming of the fuses has already
completed.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
drivers/misc/mxs_ocotp.c

index 545d3eb..0900281 100644 (file)
@@ -223,11 +223,8 @@ static int mxs_ocotp_write_fuse(uint32_t addr, uint32_t mask)
 
 fail:
        mxs_ocotp_scale_vddio(0, &vddio_val);
-       ret = mxs_ocotp_scale_hclk(0, &hclk_val);
-       if (ret) {
+       if (mxs_ocotp_scale_hclk(0, &hclk_val))
                puts("Failed scaling up the HCLK!\n");
-               return ret;
-       }
 
        return ret;
 }