Messages in this thread | | | Subject | Re: [PATCH v4 00/13] iommu/amd: Add Generic IO Page Table Framework Support | From | Suravee Suthikulpanit <> | Date | Mon, 4 Jan 2021 18:01:37 +0700 |
| |
Hi Joerg / Will,
Happy New Year!! Just want to follow up on this series.
Thanks, Suravee
On 12/15/20 2:36 PM, Suravee Suthikulpanit wrote: > The framework allows callable implementation of IO page table. > This allows AMD IOMMU driver to switch between different types > of AMD IOMMU page tables (e.g. v1 vs. v2). > > This series refactors the current implementation of AMD IOMMU v1 page table > to adopt the framework. There should be no functional change. > Subsequent series will introduce support for the AMD IOMMU v2 page table. > > Thanks, > Suravee > > Change from V3 (https://lore.kernel.org/linux-iommu/20201004014549.16065-1-suravee.suthikulpanit@amd.com/) > - Rebase to v5.10 > - Patch 2: Add struct iommu_flush_ops (previously in patch 13 of v3) > - Patch 7: Consolidate logic into v1_free_pgtable() instead of amd_iommu_free_pgtable() > - Patch 12: Check ops->[map|unmap] before calling. > - Patch 13: Setup page table when allocating domain (instead of when attaching device). > > Change from V2 (https://lore.kernel.org/lkml/835c0d46-ed96-9fbe-856a-777dcffac967@amd.com/T/#t) > - Patch 2: Introduce helper function io_pgtable_cfg_to_data. > - Patch 13: Put back the struct iommu_flush_ops since patch v2 would run into > NULL pointer bug when calling free_io_pgtable_ops if not defined. > > Change from V1 (https://lkml.org/lkml/2020/9/23/251) > - Do not specify struct io_pgtable_cfg.coherent_walk, since it is > not currently used. (per Robin) > - Remove unused struct iommu_flush_ops. (patch 2/13) > - Move amd_iommu_setup_io_pgtable_ops to iommu.c instead of io_pgtable.c > patch 13/13) > > Suravee Suthikulpanit (13): > iommu/amd: Re-define amd_iommu_domain_encode_pgtable as inline > iommu/amd: Prepare for generic IO page table framework > iommu/amd: Move pt_root to struct amd_io_pgtable > iommu/amd: Convert to using amd_io_pgtable > iommu/amd: Declare functions as extern > iommu/amd: Move IO page table related functions > iommu/amd: Restructure code for freeing page table > iommu/amd: Remove amd_iommu_domain_get_pgtable > iommu/amd: Rename variables to be consistent with struct > io_pgtable_ops > iommu/amd: Refactor fetch_pte to use struct amd_io_pgtable > iommu/amd: Introduce iommu_v1_iova_to_phys > iommu/amd: Introduce iommu_v1_map_page and iommu_v1_unmap_page > iommu/amd: Adopt IO page table framework for AMD IOMMU v1 page table > > drivers/iommu/amd/Kconfig | 1 + > drivers/iommu/amd/Makefile | 2 +- > drivers/iommu/amd/amd_iommu.h | 22 + > drivers/iommu/amd/amd_iommu_types.h | 43 +- > drivers/iommu/amd/init.c | 2 + > drivers/iommu/amd/io_pgtable.c | 564 +++++++++++++++++++++++ > drivers/iommu/amd/iommu.c | 672 ++++------------------------ > drivers/iommu/io-pgtable.c | 3 + > include/linux/io-pgtable.h | 2 + > 9 files changed, 707 insertions(+), 604 deletions(-) > create mode 100644 drivers/iommu/amd/io_pgtable.c >
| |