[PATCH 1/2] lib: Check region base for merging in sbi_domain_root_add_memregion()

Atish Patra atishp at atishpatra.org
Thu May 20 22:46:48 PDT 2021


On Thu, May 20, 2021 at 9:01 AM Anup Patel <anup.patel at wdc.com> wrote:
>
> We can merge region B onto region A only if base of region A is
> aligned to region A order + 1.
>
> Signed-off-by: Anup Patel <anup.patel at wdc.com>
> ---
>  lib/sbi/sbi_domain.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
> index 84f30b9..3096af0 100644
> --- a/lib/sbi/sbi_domain.c
> +++ b/lib/sbi/sbi_domain.c
> @@ -511,7 +511,8 @@ int sbi_domain_root_add_memregion(const struct sbi_domain_memregion *reg)
>                         if (!nreg1->order)
>                                 continue;
>
> -                       if ((nreg->base + BIT(nreg->order)) == nreg1->base &&
> +                       if (!(nreg->base & (BIT(nreg->order + 1) - 1)) &&
> +                           (nreg->base + BIT(nreg->order)) == nreg1->base &&
>                             nreg->order == nreg1->order &&
>                             nreg->flags == nreg1->flags) {
>                                 nreg->order++;
> --
> 2.25.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi


Reviewed-by: Atish Patra <atish.patra at wdc.com>

-- 
Regards,
Atish



More information about the opensbi mailing list