diff options
Diffstat (limited to 'drivers/dma/idxd/init.c')
| -rw-r--r-- | drivers/dma/idxd/init.c | 11 | 
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/dma/idxd/init.c b/drivers/dma/idxd/init.c index 085a0c3b62c6..6584b0ec07d5 100644 --- a/drivers/dma/idxd/init.c +++ b/drivers/dma/idxd/init.c @@ -65,7 +65,6 @@ static int idxd_setup_interrupts(struct idxd_device *idxd)  	struct idxd_irq_entry *irq_entry;  	int i, msixcnt;  	int rc = 0; -	union msix_perm mperm;  	msixcnt = pci_msix_vec_count(pdev);  	if (msixcnt < 0) { @@ -144,14 +143,7 @@ static int idxd_setup_interrupts(struct idxd_device *idxd)  	}  	idxd_unmask_error_interrupts(idxd); - -	/* Setup MSIX permission table */ -	mperm.bits = 0; -	mperm.pasid = idxd->pasid; -	mperm.pasid_en = device_pasid_enabled(idxd); -	for (i = 1; i < msixcnt; i++) -		iowrite32(mperm.bits, idxd->reg_base + idxd->msix_perm_offset + i * 8); - +	idxd_msix_perm_setup(idxd);  	return 0;   err_no_irq: @@ -510,6 +502,7 @@ static void idxd_shutdown(struct pci_dev *pdev)  		idxd_flush_work_list(irq_entry);  	} +	idxd_msix_perm_clear(idxd);  	destroy_workqueue(idxd->wq);  }  | 
