Hey Lu, > On 26 Mar 2019, at 01:24, Lu Baolu <[email protected]> wrote: > > Hi James, > > On 3/25/19 8:57 PM, James Sewart wrote: >>>> Theres an issue that if we choose to alloc a new resv_region with type >>>> IOMMU_RESV_DIRECT, we will need to refactor intel_iommu_put_resv_regions >>>> to free this entry type which means refactoring the rmrr regions in >>>> get_resv_regions. Should this work be in this patchset? >>> Do you mean the rmrr regions are not allocated in get_resv_regions, but >>> are freed in put_resv_regions? I think we should fix this in this patch >>> set since this might impact the device passthrough if we don't do it. >> They’re not allocated and not freed currently, only type IOMMU_RESV_MSI is >> freed in put_resv_regions. If we allocate a new resv_region with type >> IOMMU_RESV_DIRECT for the isa region, then it won’t be freed. If we modify >> put_resv_regions to free type IOMMU_RESV_DIRECT, then we will try to free >> the static RMRR regions. >> Either the ISA region is static and not freed as with my implementation, >> or the RMRR regions are converted to be allocated on each call to >> get_resv_regions and freed in put_resv_regions. > > By the way, there's another way in my mind. Let's add a new region type > for LPC devices, e.x. IOMMU_RESV_LPC, and then handle it in the same way > as those MSI regions. Just FYI.
This solution would require adding some extra code to iommu_group_create_direct_mappings as currently only type IOMMU_RESV_DIRECT is identity mapped, other types are only reserved. > > Best regards, > Lu Baolu Cheers, James. _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
