s390/pci: remove bit_lock usage in interrupt handler
authorSebastian Ott <sebott@linux.ibm.com>
Tue, 30 Oct 2018 13:04:46 +0000 (14:04 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 13 Dec 2018 09:42:25 +0000 (10:42 +0100)
The interrupt handler uses bit_spin_lock around a call to retrieve
per irq data (the irq number). However this per irq data is only
set during irq setup time and never changed until the irq is freed.

Thus it's safe to remove the lock usage.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci.c

index 9f6f392a44619ef41b910f5e6899c69d07a24edf..6df622fb406d7ddcaf6a83c352727a25c35c882c 100644 (file)
@@ -382,9 +382,7 @@ static void zpci_irq_handler(struct airq_struct *airq)
                        if (ai == -1UL)
                                break;
                        inc_irq_stat(IRQIO_MSI);
-                       airq_iv_lock(aibv, ai);
                        generic_handle_irq(airq_iv_get_data(aibv, ai));
-                       airq_iv_unlock(aibv, ai);
                }
        }
 }
@@ -410,7 +408,7 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type)
        zdev->aisb = aisb;
 
        /* Create adapter interrupt vector */
-       zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA | AIRQ_IV_BITLOCK);
+       zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA);
        if (!zdev->aibv)
                return -ENOMEM;