Call put_device() once central_op is no longer needed, preventing
a reference leak.
Fixes: 5fce09c6f636 ("sparc: Move irq_trans_init() and support code into seperate file.")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
---
arch/sparc/kernel/prom_irqtrans.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/sparc/kernel/prom_irqtrans.c b/arch/sparc/kernel/prom_irqtrans.c
index 5752bfd73ac0..4cfc27131caa 100644
--- a/arch/sparc/kernel/prom_irqtrans.c
+++ b/arch/sparc/kernel/prom_irqtrans.c
@@ -733,6 +733,7 @@ static unsigned int central_build_irq(struct device_node *dp,
} else if (of_node_name_eq(dp, "clock-board")) {
res = ¢ral_op->resource[3];
} else {
+ put_device(¢ral_op->dev);
return ino;
}
@@ -747,6 +748,7 @@ static unsigned int central_build_irq(struct device_node *dp,
tmp &= ~0x80000000;
upa_writel(tmp, imap);
+ put_device(¢ral_op->dev);
return build_irq(0, iclr, imap);
}
--
2.25.1