OSDN Git Service

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 9f6f392..6df622f 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;