Re: [PATCH v2 1/3] genirq/affinity: Add irq_update_affinity_desc()

From: John Garry
Date: Fri Nov 20 2020 - 06:52:31 EST


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