[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <aa6a66a7671f12f19d0364755e76de0d@codeaurora.org>
Date: Tue, 23 Jul 2019 14:52:34 -0700
From: pheragu@...eaurora.org
To: marc.zyngier@....com, Linux Kernel <linux-kernel@...r.kernel.org>,
Linux-arm Msm <linux-arm-msm@...r.kernel.org>
Cc: psodagud@...eaurora.org, Tsoni <tsoni@...eaurora.org>,
rananta@...eaurora.org, mnalajal@...eaurora.org
Subject: Warning seen when removing a module using irqdomain framework
Hi,
I have been working on a interrupt controller driver that uses tree
based mapping for its domain (irq_domain_add_tree(..)).
If I understand correctly, the clients get a mapping when they call
platform_get_irq(..).
However, after these clients are removed (rmmod), when I try to remove
the interrupt controller driver where it calls irq_domain_remove(..), I
hit this warning from kernel/kernel/irq/irqdomain.c::
irq_domain_remove(..)
[WARN_ON(!radix_tree_empty(&domain->revmap_tree));]-
WARNING: CPU: 0 PID: 238 at /kernel/kernel/irq/irqdomain.c:246
irq_domain_remove+0x84/0x98
Also, I see that the requested IRQs by the clients are still present (in
/proc/interrupts) even after they had been removed.
Hence, I just wanted to know how to handle this warning. Should the
client clean up by calling irq_dispose_mapping(..) or is it the
responsibility of the interrupt controller driver to dispose the
mappings one by one?
Regards,
Prakruthi Deepak Heragu
Powered by blists - more mailing lists