projects
/
linux-block.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c3f38fa
)
irqchip/riscv-intc: Prevent memory leak when riscv_intc_init_common() fails
author
Sunil V L
<sunilvl@ventanamicro.com>
Mon, 27 May 2024 08:11:13 +0000
(13:41 +0530)
committer
Thomas Gleixner
<tglx@linutronix.de>
Mon, 3 Jun 2024 10:29:35 +0000
(12:29 +0200)
When riscv_intc_init_common() fails, the firmware node allocated is not
freed. Add the missing free().
Fixes:
7023b9d83f03
("irqchip/riscv-intc: Add ACPI support")
Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Anup Patel <anup@brainfault.org>
Cc: stable@vger.kernel.org
Link:
https://lore.kernel.org/r/20240527081113.616189-1-sunilvl@ventanamicro.com
drivers/irqchip/irq-riscv-intc.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/irqchip/irq-riscv-intc.c
b/drivers/irqchip/irq-riscv-intc.c
index 9e71c442881412d7eb40bde0cc0e139a41093ff8..4f3a12383a1e4111788baf798cacd3b9accb71eb 100644
(file)
--- a/
drivers/irqchip/irq-riscv-intc.c
+++ b/
drivers/irqchip/irq-riscv-intc.c
@@
-253,8
+253,9
@@
IRQCHIP_DECLARE(andes, "andestech,cpu-intc", riscv_intc_init);
static int __init riscv_intc_acpi_init(union acpi_subtable_headers *header,
const unsigned long end)
{
- struct fwnode_handle *fn;
struct acpi_madt_rintc *rintc;
+ struct fwnode_handle *fn;
+ int rc;
rintc = (struct acpi_madt_rintc *)header;
@@
-273,7
+274,11
@@
static int __init riscv_intc_acpi_init(union acpi_subtable_headers *header,
return -ENOMEM;
}
- return riscv_intc_init_common(fn, &riscv_intc_chip);
+ rc = riscv_intc_init_common(fn, &riscv_intc_chip);
+ if (rc)
+ irq_domain_free_fwnode(fn);
+
+ return rc;
}
IRQCHIP_ACPI_DECLARE(riscv_intc, ACPI_MADT_TYPE_RINTC, NULL,