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, 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?

Thanks
Hanjun




[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