Hi Thomas,
Just mentioning a couple of things here, which could be a clue to what
is going on:
- the device is behind mbigen secondary irq controller
- the flow in the LLDD is to allocate all 128 interrupts during probe,
but we only register handlers for a subset with device managed API
Right, but if the driver is removed then the interrupts should be
deallocated, right?
When removing the driver we just call free_irq(), which removes the
handler and disables the interrupt.
But about the irq_desc, this is created when the mapping is created in
irq_create_fwspec_mapping(), and I don't see this being torn down in the
driver removal, so persistent in that regard.
So for pci msi I can see that we free the irq_desc in pci_disable_msi()
-> free_msi_irqs() -> msi_domain_free_irqs() ...
So what I am missing here?
Thanks,
John