diff options
Diffstat (limited to 'arch/s390/pci/pci.c')
| -rw-r--r-- | arch/s390/pci/pci.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index a966d7bfac57..4266a4de3160 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c | |||
| @@ -382,7 +382,9 @@ static void zpci_irq_handler(struct airq_struct *airq) | |||
| 382 | if (ai == -1UL) | 382 | if (ai == -1UL) |
| 383 | break; | 383 | break; |
| 384 | inc_irq_stat(IRQIO_MSI); | 384 | inc_irq_stat(IRQIO_MSI); |
| 385 | airq_iv_lock(aibv, ai); | ||
| 385 | generic_handle_irq(airq_iv_get_data(aibv, ai)); | 386 | generic_handle_irq(airq_iv_get_data(aibv, ai)); |
| 387 | airq_iv_unlock(aibv, ai); | ||
| 386 | } | 388 | } |
| 387 | } | 389 | } |
| 388 | } | 390 | } |
| @@ -408,7 +410,7 @@ int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) | |||
| 408 | zdev->aisb = aisb; | 410 | zdev->aisb = aisb; |
| 409 | 411 | ||
| 410 | /* Create adapter interrupt vector */ | 412 | /* Create adapter interrupt vector */ |
| 411 | zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA); | 413 | zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA | AIRQ_IV_BITLOCK); |
| 412 | if (!zdev->aibv) | 414 | if (!zdev->aibv) |
| 413 | return -ENOMEM; | 415 | return -ENOMEM; |
| 414 | 416 | ||
