elseif(pasid==INVALID_IOASID) return0; } if(pasid==INVALID_IOASID) pr_err("[%s NO_PASID] Request device [%02x:%02x.%d] fault addr 0x%llx [fault reason 0x%02x] %s\n", type?"DMA Read":"DMA Write", source_id>>8,PCI_SLOT(source_id&0xFF), ...
vfio_dma 1structvfio_dma {2structrb_node node;3dma_addr_t iova;/*Device address*/4unsignedlongvaddr;/*Process virtual addr*/5size_t size;/*Map size (bytes)*/6intprot;/*IOMMU_READ/WRITE*/7booliommu_mapped;8boollock_cap;/*capable(CAP_IPC_LOCK)*/9structtask_struct *task;10structrb...
Then the Intel VT-d driver gets the system reserved memory information, and always grants DMA access (read and write) to this memory to this specific device declared in the associated DEVICE_SCOPE of the RMRR table. Step 2: Setup DMAR Translation Table The Intel VT-d dr...
Then the Intel VT-d driver gets the system reserved memory information, and always grants DMA access (read and write) to this memory to this specific device declared in the associated DEVICE_SCOPE of the RMRR table. Step 2: Setup DMAR Translation Table The Intel VT-...