PCI: xilinx: Clear correct MSI set bit
Kernel provides virtual IRQ number at teardown. Get hwirq number from virtual IRQ and clear correct MSI set bit. Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
Родитель
3cd049ab9e
Коммит
8a4036edf9
|
@ -221,13 +221,15 @@ static void xilinx_pcie_destroy_msi(unsigned int irq)
|
|||
{
|
||||
struct msi_desc *msi;
|
||||
struct xilinx_pcie_port *port;
|
||||
struct irq_data *d = irq_get_irq_data(irq);
|
||||
irq_hw_number_t hwirq = irqd_to_hwirq(d);
|
||||
|
||||
if (!test_bit(irq, msi_irq_in_use)) {
|
||||
if (!test_bit(hwirq, msi_irq_in_use)) {
|
||||
msi = irq_get_msi_desc(irq);
|
||||
port = msi_desc_to_pci_sysdata(msi);
|
||||
dev_err(port->dev, "Trying to free unused MSI#%d\n", irq);
|
||||
} else {
|
||||
clear_bit(irq, msi_irq_in_use);
|
||||
clear_bit(hwirq, msi_irq_in_use);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче