summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBin Meng <bmeng@tinylab.org>2023-02-24 07:28:26 +0300
committerAnup Patel <anup@brainfault.org>2023-02-27 11:19:21 +0300
commitbc06ff65bf97172d11d6c898291fe1b98e177715 (patch)
tree5a3633e57eb234e7640c84d12c0d8d963cfd6748
parent5a75f5309c7544bbf7ef021bdeee0b0455af6d9b (diff)
downloadopensbi-bc06ff65bf97172d11d6c898291fe1b98e177715.tar.xz
lib: utils/fdt/fdt_domain: Simplify region access permission check
The region access permission check in __fdt_parse_region() can be simplified as masking SBI_DOMAIN_MEMREGION_{M,SU}_ACCESS_MASK is enough. While we are here, update the confusing comments to match the codes. Signed-off-by: Bin Meng <bmeng@tinylab.org> Reviewed-by: Anup Patel <anup@brainfault.org>
-rw-r--r--lib/utils/fdt/fdt_domain.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/utils/fdt/fdt_domain.c b/lib/utils/fdt/fdt_domain.c
index 2b51a8e..bc30010 100644
--- a/lib/utils/fdt/fdt_domain.c
+++ b/lib/utils/fdt/fdt_domain.c
@@ -244,13 +244,11 @@ static int __fdt_parse_region(void *fdt, int domain_offset,
* access permissions. M-mode regions can only be part of
* root domain.
*
- * SU permission bits can't be all zeroes and M-mode permission
- * bits must be all set.
+ * SU permission bits can't be all zeroes when M-mode permission
+ * bits have at least one bit set.
*/
- if (!((region_access & SBI_DOMAIN_MEMREGION_SU_ACCESS_MASK)
- & SBI_DOMAIN_MEMREGION_SU_RWX)
- && ((region_access & SBI_DOMAIN_MEMREGION_M_ACCESS_MASK)
- & SBI_DOMAIN_MEMREGION_M_RWX))
+ if (!(region_access & SBI_DOMAIN_MEMREGION_SU_ACCESS_MASK)
+ && (region_access & SBI_DOMAIN_MEMREGION_M_ACCESS_MASK))
return SBI_EINVAL;
/* Find next region of the domain */