Hi Marc, Hanjun, Hanjun Guo <guohanjun@xxxxxxxxxx> wrote on Mon, 12 Nov 2018 11:30:42 +0800: > Hi Marc, Miquel, > > On 2018/10/12 18:24, Marc Zyngier wrote: > > Hi Miquel, > > > > On 11/10/18 10:12, Miquel Raynal wrote: > >> Since the addition of platform MSI support, there were two helpers > >> supposed to allocate/free IRQs for a device: > >> > >> platform_msi_domain_alloc_irqs() > >> platform_msi_domain_free_irqs() > >> > >> In these helpers, IRQ descriptors are allocated in the "alloc" routine > >> while they are freed in the "free" one. > >> > >> Later, two other helpers have been added to handle IRQ domains on top > >> of MSI domains: > >> > >> platform_msi_domain_alloc() > >> platform_msi_domain_free() > >> > >> Seen from the outside, the logic is pretty close with the former > >> helpers and people used it with the same logic as before: a > >> platform_msi_domain_alloc() call should be balanced with a > >> platform_msi_domain_free() call. While this is probably what was > >> intended to do, the platform_msi_domain_free() does not remove/free > >> the IRQ descriptor(s) created/inserted in > >> platform_msi_domain_alloc(). > >> > >> One effect of such situation is that removing a module that requested > >> an IRQ will let one orphaned IRQ descriptor (with an allocated MSI > >> entry) in the device descriptors list. Next time the module will be > >> inserted back, one will observe that the allocation will happen twice > >> in the MSI domain, one time for the remaining descriptor, one time for > >> the new one. It also has the side effect to quickly overshoot the > >> maximum number of allocated MSI and then prevent any module requesting > >> an interrupt in the same domain to be inserted anymore. > >> > >> This situation has been met with loops of insertion/removal of the > >> mvpp2.ko module (requesting 15 MSIs each time). > >> > >> Fixes: 552c494a7666 ("platform-msi: Allow creation of a MSI-based stacked irq domain") > >> Cc: stable@xxxxxxxxxxxxxxx > >> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx> > > > > Thanks for the respin. If nobody disagrees, I'll route this through Thomas to stash into tip, and hopefully have that in 4.19. > > I didn't see this patch hit mainline, did I miss something? Indeed, I can't see it neither. Marc, is it possible to have it queued for your next PR? Miquèl