PSCI: Fix MISRA defects in MEM_PROTECT
authorAntonio Nino Diaz <[email protected]>
Mon, 16 Jul 2018 22:36:10 +0000 (23:36 +0100)
committerAntonio Nino Diaz <[email protected]>
Tue, 24 Jul 2018 08:19:22 +0000 (09:19 +0100)
MISRA C-2012 Rules 10.1 and 10.3.

Change-Id: I88cd5f56cda5780f2e0ba541c0f5b561309ab3af
Signed-off-by: Antonio Nino Diaz <[email protected]>
lib/psci/psci_mem_protect.c
lib/psci/psci_private.h

index fca84e905b12d67377d40efc5d94fb3760a5ec89..857146b67ff9c5fb9349418f6fa1726fc95fee73 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -9,30 +9,31 @@
 #include <utils.h>
 #include "psci_private.h"
 
-int psci_mem_protect(unsigned int enable)
+u_register_t psci_mem_protect(unsigned int enable)
 {
        int val;
 
-       assert(psci_plat_pm_ops->read_mem_protect);
-       assert(psci_plat_pm_ops->write_mem_protect);
+       assert(psci_plat_pm_ops->read_mem_protect != NULL);
+       assert(psci_plat_pm_ops->write_mem_protect != NULL);
 
        if (psci_plat_pm_ops->read_mem_protect(&val) < 0)
-               return PSCI_E_NOT_SUPPORTED;
+               return (u_register_t) PSCI_E_NOT_SUPPORTED;
        if (psci_plat_pm_ops->write_mem_protect(enable) < 0)
-               return PSCI_E_NOT_SUPPORTED;
+               return (u_register_t) PSCI_E_NOT_SUPPORTED;
 
-       return val != 0;
+       return (val != 0) ? 1U : 0U;
 }
 
-int psci_mem_chk_range(uintptr_t base, u_register_t length)
+u_register_t psci_mem_chk_range(uintptr_t base, u_register_t length)
 {
        int ret;
 
-       assert(psci_plat_pm_ops->mem_protect_chk);
+       assert(psci_plat_pm_ops->mem_protect_chk != NULL);
 
-       if (length == 0 || check_uptr_overflow(base, length-1))
-               return PSCI_E_DENIED;
+       if ((length == 0U) || check_uptr_overflow(base, length - 1U))
+               return (u_register_t) PSCI_E_DENIED;
 
        ret = psci_plat_pm_ops->mem_protect_chk(base, length);
-       return (ret < 0) ? PSCI_E_DENIED : PSCI_E_SUCCESS;
+       return (ret < 0) ?
+              (u_register_t) PSCI_E_DENIED : (u_register_t) PSCI_E_SUCCESS;
 }
index ac99876f58b15ae7ef82bd89cd47fc687d00201f..75f7d45ec20e120d495d4bd04e72bd5b20962ff0 100644 (file)
@@ -330,7 +330,7 @@ u_register_t psci_stat_count(u_register_t target_cpu,
                        unsigned int power_state);
 
 /* Private exported functions from psci_mem_protect.c */
-int psci_mem_protect(unsigned int enable);
-int psci_mem_chk_range(uintptr_t base, u_register_t length);
+u_register_t psci_mem_protect(unsigned int enable);
+u_register_t psci_mem_chk_range(uintptr_t base, u_register_t length);
 
 #endif /* PSCI_PRIVATE_H */