Displaying 2 results from an estimated 2 matches for "cap_fault_reg_offset".
2010 Mar 11
0
[PATCH] VT-d: various initialization fixes
...REFIX,
+ "drhd->address = %"PRIx64" iommu->reg = %p\n",
+ drhd->address, iommu->reg);
+ dprintk(XENLOG_DEBUG VTDPREFIX,
+ "cap = %"PRIx64" ecap = %"PRIx64"\n", iommu->cap, iommu->ecap);
+ if ( cap_fault_reg_offset(iommu->cap) +
+ cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN >= PAGE_SIZE ||
+ ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE )
+ {
+ dprintk(XENLOG_ERR VTDPREFIX, "IOMMU: unsupported\n");
+ print_iommu_regs(drhd);
+ return -EN...
2012 Nov 05
25
[PATCH] IOMMU: don't disable bus mastering on faults for devices used by Xen or Dom0
...eg, PCI_BUS(bdf),
PCI_SLOT(bdf), PCI_FUNC(bdf),
PCI_COMMAND);
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -916,7 +916,8 @@ static void __do_iommu_page_fault(struct
reg = cap_fault_reg_offset(iommu->cap);
while (1)
{
- u8 fault_reason;
+ const struct pci_dev *pdev;
+ u8 fault_reason, bus;
u16 source_id, cword;
u32 data;
u64 guest_addr;
@@ -950,14 +951,27 @@ static void __do_iommu_page_fault(struct
iommu_page_fault_do_...