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> |
||
|---|---|---|
| .. | ||
| Makefile | ||
| bus.c | ||
| cdev.c | ||
| compat.c | ||
| debugfs.c | ||
| defaults.c | ||
| device.c | ||
| dma.c | ||
| idxd.h | ||
| init.c | ||
| irq.c | ||
| perfmon.c | ||
| perfmon.h | ||
| registers.h | ||
| submit.c | ||
| sysfs.c | ||