[PATCH] lib: utils/irqchip: Add sanity checks to imsic_warm_irqchip_init()

Anup Patel anup at brainfault.org
Tue May 7 05:39:25 PDT 2024


On Tue, Apr 9, 2024 at 8:25 PM Cyan Yang <cyan.yang at sifive.com> wrote:
>
> Add sanity checks for per-HART IMSIC pointer in warm init flow, similar to
> what the cold init flow does. This will help prevent any misuse of the
> data in scratch space.

Can you elaborate on the kind of misuse which can happen ?

>
> Signed-off-by: Cyan Yang <cyan.yang at sifive.com>
> ---
>  lib/utils/irqchip/imsic.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/lib/utils/irqchip/imsic.c b/lib/utils/irqchip/imsic.c
> index f2a35c6..e6a3657 100644
> --- a/lib/utils/irqchip/imsic.c
> +++ b/lib/utils/irqchip/imsic.c
> @@ -243,10 +243,15 @@ void imsic_local_irqchip_init(void)
>
>  int imsic_warm_irqchip_init(void)
>  {
> +       int rc;
>         struct imsic_data *imsic = imsic_get_data(current_hartid());
>
>         /* Sanity checks */
> -       if (!imsic || !imsic->targets_mmode)
> +       rc = imsic_data_check(imsic);
> +       if (rc)
> +               return rc;
> +
> +       if (!imsic->targets_mmode)
>                 return SBI_EINVAL;
>
>         /* Disable all interrupts */
> --
> 2.39.3 (Apple Git-146)
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi

Regards,
Anup



More information about the opensbi mailing list