diff options
author | Dave Jiang <dave.jiang@intel.com> | 2021-09-02 02:18:05 +0200 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-10-25 08:39:15 +0200 |
commit | e530a9f3db4188d1f4e3704b0948ef69c04d5ca6 (patch) | |
tree | fc89355af81e010e87f47289492a9a5f66fc80fe /drivers/dma/idxd | |
parent | dmaengine: idxd: add halt interrupt support (diff) | |
download | linux-e530a9f3db4188d1f4e3704b0948ef69c04d5ca6.tar.xz linux-e530a9f3db4188d1f4e3704b0948ef69c04d5ca6.zip |
dmaengine: idxd: reconfig device after device reset command
Device reset clears the MSIXPERM table and the device registers. Re-program
the MSIXPERM table and re-enable the error interrupts post reset.
Fixes: 745e92a6d816 ("dmaengine: idxd: idxd: move remove() bits for idxd 'struct device' to device.c")
Reported-by: Sanjay Kumar <sanjay.k.kumar@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/163054188513.2853562.12077053294595278181.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/idxd')
-rw-r--r-- | drivers/dma/idxd/device.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index ef3281fc3f8b..b1407465d5c4 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -583,6 +583,8 @@ void idxd_device_reset(struct idxd_device *idxd) spin_lock(&idxd->dev_lock); idxd_device_clear_state(idxd); idxd->state = IDXD_DEV_DISABLED; + idxd_unmask_error_interrupts(idxd); + idxd_msix_perm_setup(idxd); spin_unlock(&idxd->dev_lock); } |