[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