VT-d: clear_fault_bits() should clear all fault bits
authorJan Beulich <jbeulich@suse.com>
Thu, 15 Jul 2021 07:32:46 +0000 (09:32 +0200)
committerJan Beulich <jbeulich@suse.com>
Thu, 15 Jul 2021 07:32:46 +0000 (09:32 +0200)
commit79774e0df8be2d27fe79740acce6d1614b45bacc
tree423d642b6ffbfc0e81addc9d0ed1486374be2758
parente06d0c113e0067b86186db94aabae9c91aa09f35
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>
master commit: 80589800ae62fce43fd3921e8fbd362465fe5ba3
master date: 2021-06-24 16:29:42 +0200
xen/drivers/passthrough/vtd/iommu.c
xen/drivers/passthrough/vtd/iommu.h