Re: [RFC 2/4] PCI, MSI: Optionally free legacy PCI IRQ when enabling MSI/MSI-X

From: Jiang Liu
Date: Tue May 19 2015 - 23:06:36 EST


On 2015/5/16 5:02, Thomas Gleixner wrote:
> On Thu, 7 May 2015, Jiang Liu wrote:
>
>> Once PCI MSI/MSI-X is enabled by the device driver, PCI device won't
>> make use of legacy PCI IRQ until PCI MSI/MSI-X is disabled again.
>> So optionally free legacy PCI IRQ when enabling MSI/MSI-X and reallocate
>> when disabling MSI/MSI-X.
>
> This is a bit odd. With your proposed change we'll have:
>
> alloc_legacy_irq()
>
> msi[x]_enable()
> free_legacy_irq()
>
> msi[x]_disable()
> alloc_legacy_irq()
Hi Thomas,
It's for safety. I'm not sure whether the device driver will
make use of legacy IRQ after calling msi[x]_disable(). I have concerns
about following pattern in PCI device drivers:
---------------------------------------------------
if (enable_msi() == SUCCESS) {
if (allocate_resource_for_msi() == SUCCESS)
return;
disable_msi();
}
use_legacy_irq()

Thanks!
Gerry

>
> And after that we shut down the device which will free the legacy irq
> again.
>
> Shouldn't we allocate the legacy irq only if we really need it?
>
> Thanks,
>
> tglx
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/