[PATCH] lib: utils/irqchip: Add sanity checks to imsic_warm_irqchip_init()
Cyan Yang
cyan.yang at sifive.com
Tue Apr 9 07:45:47 PDT 2024
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.
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)
More information about the opensbi
mailing list