On Wed, Sep 03, 2025 at 02:46:29PM -0300, Jason Gunthorpe wrote: > +For this to work the .c file for each compilation unit will include both the > +format headers and the generic code for the implementation. For instance in an > +implementation compilation unit the headers would normally be included as > +follows:: > + > + #include <linux/generic_pt/common.h> > + #include "fmt/defs_amdv1.h" > + #include "pt_defs.h" > + #include "fmt/amdv1.h" > + #include "pt_common.h" > + #include "pt_iter.h" > + #include "IOMMUt_pt.h" /* The IOMMU implementation */ Should the last one be "iommu_pt.h" that's mentioned below? > +iommu_pt.h includes definitions that will generate the operations functions for > +map/unmap/etc. using the definitions provided by AMDv1. The resulting module > +will have exported symbols named like pt_iommu_amdv1_init(). ----- > +Refer to drivers/iommu/generic-pt/fmt/iommu_template.h for an example of how the > +IOMMU implementation uses multi-compilation to generate per-format ops structs > +pointers. It should be "generic_pt" in the path, instead of "generic-pt". > diff --git a/drivers/iommu/generic_pt/pt_iter.h b/drivers/iommu/generic_pt/pt_iter.h > index 6bd84f96f5ad6e..0956c8a45646c9 100644 > --- a/drivers/iommu/generic_pt/pt_iter.h > +++ b/drivers/iommu/generic_pt/pt_iter.h > @@ -21,7 +21,7 @@ > * pt_check_range() - Validate the range can be iterated > * @range: Range to validate > * > - * Check that va and last_va fall within the permitted range of VAs. If the > + * Check that VA and last_va fall within the permitted range of VAs. If the > * format is using PT_FEAT_SIGN_EXTEND then this also checks the sign extension > * is correct. I suppose it should be squashed into the previous patch :) Thanks Nicolin