[PATCH v2 2/3] lib: sbi: add more restriction to domain region subset check
Anup Patel
anup at brainfault.org
Tue Nov 14 09:13:01 PST 2023
On Tue, Oct 10, 2023 at 6:30 AM Inochi Amaoto <inochiama at outlook.com> wrote:
>
> make is_region_subset() check the bound of the domain region, so it can
> handle the domain region with the same base and length.
>
> Signed-off-by: Inochi Amaoto <inochiama at outlook.com>
Important fact here is that regB_start < regB_end and
regA_start < regA_end because order == 0 region is of
size 1 byte.
When regB_start == regA_start and regB_end == regA_end,
the following is the outcome of the expressions in the existing
"if ()" check.
(regB_start <= regA_start) == true
(regA_start < regB_end) == true
(regB_start < regA_end) == true
(regA_end <= regB_end) == true
Based on the above, I don't see how this patch helps.
Regards,
Anup
> ---
> lib/sbi/sbi_domain.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
> index 283b598..2b9d16f 100644
> --- a/lib/sbi/sbi_domain.c
> +++ b/lib/sbi/sbi_domain.c
> @@ -185,8 +185,8 @@ static bool is_region_subset(const struct sbi_domain_memregion *regA,
> ulong regB_end = regB->base + (BIT(regB->order) - 1);
>
> if ((regB_start <= regA_start) &&
> - (regA_start < regB_end) &&
> - (regB_start < regA_end) &&
> + (regB_start <= regA_end) &&
> + (regA_start <= regB_end) &&
> (regA_end <= regB_end))
> return true;
>
> --
> 2.42.0
>
More information about the opensbi
mailing list