Merge "fix(xlat_tables_v2): zeromem to clear all tables" into integration
diff --git a/lib/xlat_tables_v2/xlat_tables_core.c b/lib/xlat_tables_v2/xlat_tables_core.c
index 971dba4..bd7f017 100644
--- a/lib/xlat_tables_v2/xlat_tables_core.c
+++ b/lib/xlat_tables_v2/xlat_tables_core.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017-2024, Arm Limited and Contributors. All rights reserved.
+ * Copyright (c) 2017-2025, Arm Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@@ -15,6 +15,7 @@
#include <arch_features.h>
#include <arch_helpers.h>
#include <common/debug.h>
+#include <lib/utils.h>
#include <lib/utils_def.h>
#include <lib/xlat_tables/xlat_tables_defs.h>
#include <lib/xlat_tables/xlat_tables_v2.h>
@@ -1204,16 +1205,13 @@
xlat_mmap_print(mm);
/* All tables must be zeroed before mapping any region. */
+ zeromem(ctx->base_table, ctx->base_table_entries * sizeof(uint64_t));
- for (unsigned int i = 0U; i < ctx->base_table_entries; i++)
- ctx->base_table[i] = INVALID_DESC;
-
- for (int j = 0; j < ctx->tables_num; j++) {
#if PLAT_XLAT_TABLES_DYNAMIC
- ctx->tables_mapped_regions[j] = 0;
+ zeromem(ctx->tables_mapped_regions, ctx->tables_num * sizeof(uint32_t));
#endif
- for (unsigned int i = 0U; i < XLAT_TABLE_ENTRIES; i++)
- ctx->tables[j][i] = INVALID_DESC;
+ for (int i = 0; i < ctx->tables_num; i++) {
+ zeromem(ctx->tables[i], XLAT_TABLE_ENTRIES * sizeof(uint64_t));
}
while (mm->size != 0U) {