Re: [PATCH linux-next v2] arm64: PCI: Introduce pcibios_free_irq() helper function
From: Lorenzo Pieralisi <hidden>
Date: 2021-09-22 16:22:09
Also in:
lkml
On Wed, Sep 22, 2021 at 02:49:13AM +0000, yajun.deng@linux.dev wrote:
September 21, 2021 11:47 PM, "Lorenzo Pieralisi" [off-list ref] wrote:quoted
On Thu, Aug 26, 2021 at 02:04:06PM +0800, Yajun Deng wrote:quoted
pcibios_alloc_irq() will be called in pci_device_probe(), but there hasn't pcibios_free_irq() in arm64 architecture correspond it. pcibios_free_irq() is an empty weak function in drivers/pci/pci-driver.c."pcibios_alloc_irq() is a weak function called to allocate IRQs for a device in pci_device_probe(); arm64 implements it with ACPI specific code to enable IRQs for a device. When a device is removed (pci_device_remove()) the pcibios_free_irq() counterpart is called. Current arm64 code does not implement a pcibios_free_irq() function, and therefore, the weak empty stub is executed, which means that the IRQ for a device are not properly disabled when a device is removed. Add an arm64 pcibios_free_irq() to undo the actions carried out in pcibios_alloc_irq()." This is a stub commit log. Then you need to describe the bug you are fixing (if any, or it is just code inspection ?)It is just code inspection.
Before merging it it must be tested, which would prove it is needed. Lorenzo
quoted
quoted
So add pcibios_free_irq() for correspond it. This will be called in pci_device_remove(). ==================== v2: remove the change in pcibios_alloc_irq(), and modify the commit log. ====================Don't add versioning in the commit log, it does not belong here. I don't think we should send this to stable kernels straight away, it is best to make sure we are not triggering any regressions first. Lorenzoquoted
Signed-off-by: Yajun Deng <redacted> --- arch/arm64/kernel/pci.c | 7 +++++++ 1 file changed, 7 insertions(+)diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c index 2276689b5411..6ffd92126f65 100644 --- a/arch/arm64/kernel/pci.c +++ b/arch/arm64/kernel/pci.c@@ -29,6 +29,13 @@ int pcibios_alloc_irq(struct pci_dev *dev)return 0; } + +void pcibios_free_irq(struct pci_dev *dev) +{ + if (!acpi_disabled) + acpi_pci_irq_disable(dev); +} + #endif /* -- 2.32.0
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel