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); }