[PATCH] utils: irqchip: plic: Using 1 as default priority value

guoren at kernel.org guoren at kernel.org
Sat Apr 24 03:43:47 BST 2021


From: Guo Ren <guoren at linux.alibaba.com>

In linux plic drivers:
static inline void plic_irq_toggle(const struct cpumask *mask,
				   struct irq_data *d, int enable)
{
	int cpu;
	struct plic_priv *priv = irq_data_get_irq_chip_data(d);

	writel(enable, priv->regs + PRIORITY_BASE + d->hwirq * PRIORITY_PER_ID);

It sets PRIORITY in enable/disable irq, but not during init.
Actually, priority is no use at all and just keep them the same is
enough.

The motivation of my patch: When we want to run 2 different Linux OS
in the same SMP system, the second Linux cold boot will flush all
priority to zero and the patch is to solve the problem.

Signed-off-by: Guo Ren <guoren at linux.alibaba.com>
Cc: Anup Patel <anup.patel at wdc.com>
---
 lib/utils/irqchip/plic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/utils/irqchip/plic.c b/lib/utils/irqchip/plic.c
index 7665c62..70e89a6 100644
--- a/lib/utils/irqchip/plic.c
+++ b/lib/utils/irqchip/plic.c
@@ -94,7 +94,7 @@ int plic_cold_irqchip_init(struct plic_data *plic)
 
 	/* Configure default priorities of all IRQs */
 	for (i = 1; i <= plic->num_src; i++)
-		plic_set_priority(plic, i, 0);
+		plic_set_priority(plic, i, 1);
 
 	return 0;
 }
-- 
2.7.4




More information about the opensbi mailing list