chore(configs/libspdm): Update patch modifying LIBSPDM_STATUS_SUCCESS
This Changes updates the patch file that patched the
LIBSPDM_STATUS_SUCCESS macro. Instead of fixing LIBSPDM_STATUS_SUCCESS,
this update changes the LIBSPDM_STATUS_CONSTRUCT macro, to prevent misra
error detection.
Signed-off-by: Mate Toth-Pal <mate.toth-pal@arm.com>
Change-Id: I7de35005c76e6ced5a5da20cb1e76b9a80e1cd8c
diff --git a/app/device_assignment/el0_app/spdm_requester/CMakeLists.txt b/app/device_assignment/el0_app/spdm_requester/CMakeLists.txt
index 9f38dcf..f101f2c 100644
--- a/app/device_assignment/el0_app/spdm_requester/CMakeLists.txt
+++ b/app/device_assignment/el0_app/spdm_requester/CMakeLists.txt
@@ -25,7 +25,7 @@
set(LIBSPDM_PATCH_DIR "${RMM_SOURCE_DIR}/configs/libspdm")
set(LIBSPDM_PATCH_FILES
"${LIBSPDM_PATCH_DIR}/0001-cryptlib_mbedtls-use-external-Mbed-TLS.patch"
- "${LIBSPDM_PATCH_DIR}/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_SUCCE.patch"
+ "${LIBSPDM_PATCH_DIR}/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_CONST.patch"
)
Git_Apply_Patches(${LIBSPDM_DIR} "${LIBSPDM_PATCH_FILES}")
diff --git a/app/device_assignment/el0_app/src/dev_assign_el0_app.c b/app/device_assignment/el0_app/src/dev_assign_el0_app.c
index a1af487..9e5662b 100644
--- a/app/device_assignment/el0_app/src/dev_assign_el0_app.c
+++ b/app/device_assignment/el0_app/src/dev_assign_el0_app.c
@@ -24,10 +24,6 @@
info = spdm_to_dev_assign_info(spdm_context);
if ((uintptr_t)info->send_recv_buffer > (uintptr_t)request) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_SEND_FAIL;
}
@@ -42,10 +38,6 @@
if ((buf_offset + request_size_align)
> (PRIV_LIBSPDM_SEND_RECV_BUF_SIZE + PRIV_LIBSPDM_SCRATCH_BUF_SIZE)) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_SEND_FAIL;
}
@@ -62,10 +54,6 @@
info->enter_args.req_addr, request_size_align);
if (rc != 0) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_SEND_FAIL;
}
@@ -83,10 +71,6 @@
(void)memset(&info->exit_args, 0, sizeof(info->exit_args));
if (info->enter_args.status == RMI_DEV_COMM_ENTER_STATUS_ERROR) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_SEND_FAIL;
}
@@ -108,10 +92,6 @@
info = spdm_to_dev_assign_info(spdm_context);
if ((uintptr_t)info->send_recv_buffer > (uintptr_t)*response) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_RECEIVE_FAIL;
}
@@ -121,10 +101,6 @@
if ((buf_offset + resp_len_align)
> (PRIV_LIBSPDM_SEND_RECV_BUF_SIZE + PRIV_LIBSPDM_SCRATCH_BUF_SIZE)) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_RECEIVE_FAIL;
}
@@ -139,10 +115,6 @@
info->enter_args.resp_addr, resp_len_align);
if (rc != 0) {
- /* cppcheck-suppress misra-c2012-12.2 */
- /* cppcheck-suppress misra-c2012-10.1 */
- /* coverity[misra_c_2012_rule_10_1_violation:SUPPRESS] */
- /* coverity[misra_c_2012_rule_12_2_violation:SUPPRESS] */
return LIBSPDM_STATUS_RECEIVE_FAIL;
}
diff --git a/configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_SUCCE.patch b/configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_CONST.patch
similarity index 78%
rename from configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_SUCCE.patch
rename to configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_CONST.patch
index b4123c6..e564aa8 100644
--- a/configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_SUCCE.patch
+++ b/configs/libspdm/0002-fix-libspdm_hmac_new-return-and-LIBSPDM_STATUS_CONST.patch
@@ -1,35 +1,32 @@
From e9e88a3a7fbebeb0710a78b37f795fb628f8aa56 Mon Sep 17 00:00:00 2001
From: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Date: Mon, 7 Oct 2024 16:09:26 +0100
-Subject: [PATCH] fix: libspdm_hmac_new return and LIBSPDM_STATUS_SUCCESS macro
+Subject: [PATCH] fix: libspdm_hmac_new return and LIBSPDM_STATUS_CONSTRUCT macro
1. Fix return value of libspdm_hmac_new.
-2. use const for LIBSPDM_STATUS_SUCCESS
- Using LIBSPDM_STATUS_CONSTRUCT macro for LIBSPDM_STATUS_SUCCESS
- causes lot of misra errors due to left shift operation on value 0.
- So do not use macro to construct LIBSPDM_STATUS_SUCCESS value.
+2. Cast all the macro parameters of LIBSPDM_STATUS_CONSTRUCT to
+ uint32_t to prevent misra check errors.
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
---
- include/library/spdm_return_status.h | 3 +--
+ include/library/spdm_return_status.h | 2 +-
library/spdm_crypt_lib/libspdm_crypt_hmac.c | 16 ++++++++--------
- 2 files changed, 9 insertions(+), 10 deletions(-)
+ 2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/include/library/spdm_return_status.h b/include/library/spdm_return_status.h
index 708c16d917..ad739d23d1 100644
--- a/include/library/spdm_return_status.h
+++ b/include/library/spdm_return_status.h
-@@ -55,8 +55,7 @@ typedef uint32_t libspdm_return_t;
- ((libspdm_return_t)(((severity) << 28) | ((source) << 16) | (code)))
+@@ -52,7 +52,7 @@ typedef uint32_t libspdm_return_t;
+ #define LIBSPDM_SOURCE_RNG 0x06
+
+ #define LIBSPDM_STATUS_CONSTRUCT(severity, source, code) \
+- ((libspdm_return_t)(((severity) << 28) | ((source) << 16) | (code)))
++ ((libspdm_return_t)(((uint32_t)(severity) << 28) | ((uint32_t)(source) << 16) | (uint32_t)(code)))
/* Success status is always 0x00000000. */
--#define LIBSPDM_STATUS_SUCCESS \
-- LIBSPDM_STATUS_CONSTRUCT(LIBSPDM_SEVERITY_SUCCESS, LIBSPDM_SOURCE_SUCCESS, 0x0000)
-+#define LIBSPDM_STATUS_SUCCESS (((libspdm_return_t)0x00000000))
-
- #define LIBSPDM_RET_ON_ERR(status) \
- do { \
+ #define LIBSPDM_STATUS_SUCCESS \
diff --git a/library/spdm_crypt_lib/libspdm_crypt_hmac.c b/library/spdm_crypt_lib/libspdm_crypt_hmac.c
index 56f8b0efea..9ea14f3ea7 100644
--- a/library/spdm_crypt_lib/libspdm_crypt_hmac.c