VT-d: clear_fault_bits() should clear all fault bits
authorJan Beulich <jbeulich@suse.com>
Thu, 24 Jun 2021 14:29:42 +0000 (16:29 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 24 Jun 2021 14:29:42 +0000 (16:29 +0200)
commit80589800ae62fce43fd3921e8fbd362465fe5ba3
tree4dd06cc557eb776e549a8ff108966e1419a0b4fc
parent32655880057ce2829f962d46916ea6cec60f98d3
VT-d: clear_fault_bits() should clear all fault bits

If there is any way for one fault to be left set in the recording
registers, there's no reason there couldn't also be multiple ones. If
PPF set set (being the OR or all F fields), simply loop over the entire
range of fault recording registers, clearing F everywhere.

Since PPF is a r/o bit, also remove it from DMA_FSTS_FAULTS (arguably
the constant's name is ambiguous as well).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
xen/drivers/passthrough/vtd/iommu.c
xen/drivers/passthrough/vtd/iommu.h