Hi all, I was trying to do PCIe passthrough for a QCA6390 wireless card. However I constantly get: [ 230.587950] DMAR: DRHD: handling fault status reg 2 [ 230.587860] DMAR: [INTR-REMAP] Request device [0x00:0x01] fault index 0xa00 [fault reason 0x25] Blocked a compatibility format interrupt request Error on host kernel. Did a little bit investigation, I found that ath11k hardware is not following MSI address and data programmed by PCI config space. It maintains MSI address and data in it's own internal registers (programmed in ath11k_ce_srng_msi_ring_params_setup and ath11k_dp_srng_msi_setup). It means when signalling MSI IRQ, it won't write to the doorbell that expected by host hardware (in this case, Intel IOMMU DHRD's doorbell for IRQ remapping) but the doorbell that VFIO made up for guest. I came up with a simple workaround on host kernel that just handle DRHD 0x25 fault and deliver MSI to guest according to fault address and data. So I've got a couple of questions about moving forward: 1. Is this hardware behaviour a violation of PCIe spec? 2. Is it expected for IOMMU to handle those ill-formed MSI requests? If not is it possible to get this workaround upstreamed? 3. For Qualcomm guys, is it possible to fix this behaviour in ath11k driver or firmware? Thanks - Jiaxun