mirror-linux/drivers/dma/idxd
Nikhil Rao f80ea85669 dmaengine: idxd: drain ATS translations when disabling WQ
There's an errata[1], for the Disable WQ command that it
does not guaranteee that address translations are drained. If WQ
configuration is updated, pending address translations can use an
updated WQ configuration, resulting an invalid translation response
that is cached in the device translation cache.

Replace the Disable WQ command with a Drain WQ command followed by a
Reset WQ command, this guarantees that all ATS translations are
drained from the device before changing WQ configuration.

[1] https://cdrdv2.intel.com/v1/dl/getcontent/843306 ("Intel DSA May
Cause Invalid Translation Caching")

Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2025-10-16 17:43:35 +05:30
..
Makefile module: Convert default symbol namespace to string literal 2024-12-03 08:22:25 -08:00
bus.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
cdev.c dmaengine updates for v6.16 2025-06-05 08:49:30 -07:00
compat.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
debugfs.c dmaengine: idxd: Convert spinlock to mutex to lock evl workqueue 2024-04-07 13:31:44 +05:30
defaults.c dmaengine: idxd: Replace memset(0) + strscpy() with strscpy_pad() 2025-08-20 23:01:27 +05:30
device.c dmaengine: idxd: drain ATS translations when disabling WQ 2025-10-16 17:43:35 +05:30
dma.c dmaengine: add channel device name to channel registration 2024-06-11 23:55:34 +05:30
idxd.h dmaengine: idxd: Remove unused pointer and macro 2025-05-14 16:00:30 +01:00
init.c dmaengine updates for v6.18 2025-10-06 10:37:06 -07:00
irq.c dmaengine: idxd: Enable Function Level Reset (FLR) for halt 2024-12-24 16:08:05 +05:30
perfmon.c dmaengine updates for v6.12 2024-09-23 14:08:08 -07:00
perfmon.h dmaengine: idxd: Add IDXD performance monitor support 2021-04-25 21:46:12 +05:30
registers.h dmaengine updates for v6.18 2025-10-06 10:37:06 -07:00
submit.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
sysfs.c dmaengine: idxd: Narrow the restriction on BATCH to ver. 1 only 2025-05-14 15:29:04 +01:00