'struct intel_svm' is shared by all devices bound to a give process,
but records only a single pointer to a 'struct intel_iommu'. Consequently,
cache invalidations may only be applied to a single DMAR unit, and are
erroneously skipped for the other devices.
In preparation for fixing this, rework the structures so that the iommu
pointer resides in 'struct intel_svm_dev', allowing 'struct intel_svm'
to track them in its device list.
Fixes:
|
||
---|---|---|
.. | ||
debugfs.c | ||
dmar.c | ||
iommu.c | ||
irq_remapping.c | ||
Kconfig | ||
Makefile | ||
pasid.c | ||
pasid.h | ||
svm.c | ||
trace.c |