Skip to content

Commit 8765f46

Browse files
committed
Merge tag 'irq_urgent_for_v6.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fixes from Borislav Petkov: - Skip interrupt ID 0 in sifive-plic during suspend/resume because ID 0 is reserved and accessing reserved register space could result in undefined behavior - Fix a function's retval check in aspeed-scu-ic * tag 'irq_urgent_for_v6.18_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/sifive-plic: Avoid interrupt ID 0 handling during suspend/resume irqchip/aspeed-scu-ic: Fix an IS_ERR() vs NULL check
2 parents 67029a4 + f75e07b commit 8765f46

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

drivers/irqchip/irq-aspeed-scu-ic.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,8 @@ static int aspeed_scu_ic_of_init_common(struct aspeed_scu_ic *scu_ic,
215215
int irq, rc = 0;
216216

217217
scu_ic->base = of_iomap(node, 0);
218-
if (IS_ERR(scu_ic->base)) {
219-
rc = PTR_ERR(scu_ic->base);
218+
if (!scu_ic->base) {
219+
rc = -ENOMEM;
220220
goto err;
221221
}
222222

drivers/irqchip/irq-sifive-plic.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,8 @@ static int plic_irq_suspend(void)
254254

255255
priv = per_cpu_ptr(&plic_handlers, smp_processor_id())->priv;
256256

257-
for (i = 0; i < priv->nr_irqs; i++) {
257+
/* irq ID 0 is reserved */
258+
for (i = 1; i < priv->nr_irqs; i++) {
258259
__assign_bit(i, priv->prio_save,
259260
readl(priv->regs + PRIORITY_BASE + i * PRIORITY_PER_ID));
260261
}
@@ -285,7 +286,8 @@ static void plic_irq_resume(void)
285286

286287
priv = per_cpu_ptr(&plic_handlers, smp_processor_id())->priv;
287288

288-
for (i = 0; i < priv->nr_irqs; i++) {
289+
/* irq ID 0 is reserved */
290+
for (i = 1; i < priv->nr_irqs; i++) {
289291
index = BIT_WORD(i);
290292
writel((priv->prio_save[index] & BIT_MASK(i)) ? 1 : 0,
291293
priv->regs + PRIORITY_BASE + i * PRIORITY_PER_ID);

0 commit comments

Comments
 (0)