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

Reply via email to