Re: [PATCH v2] platform-msi: Free descriptors in platform_msi_domain_free()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux