diff options
author | Bin Meng <bmeng@tinylab.org> | 2023-02-24 07:28:26 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2023-02-27 11:19:21 +0300 |
commit | bc06ff65bf97172d11d6c898291fe1b98e177715 (patch) | |
tree | 5a3633e57eb234e7640c84d12c0d8d963cfd6748 /lib/utils/fdt | |
parent | 5a75f5309c7544bbf7ef021bdeee0b0455af6d9b (diff) | |
download | opensbi-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>
Diffstat (limited to 'lib/utils/fdt')
-rw-r--r-- | lib/utils/fdt/fdt_domain.c | 10 |
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 */ |