On Mon, Jan 16, 2017 at 01:23:33AM -0600, Suravee Suthikulpanit wrote: > From: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com> > > The current amd_iommu_pc_get_set_reg_val() cannot support multiple IOMMUs > It is also confusing since it is trying to support set and get in > one function. > > So break it down to amd_iommu_pc_[get|set]_reg(), > and modifies them to allow callers to specify IOMMU index. This prepares
and modify > the driver for supporting multi-IOMMU in subsequent patch. > > Also remove unnecessary function declarations in amd_iommu_proto.h. > > Cc: Peter Zijlstra <pet...@infradead.org> > Cc: Borislav Petkov <b...@alien8.de> > Cc: Joerg Roedel <j...@8bytes.org> > Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com> > --- > arch/x86/events/amd/iommu.c | 34 ++++++++++---------------- > arch/x86/events/amd/iommu.h | 7 ++++-- > drivers/iommu/amd_iommu_init.c | 53 > ++++++++++++++++++++++++++--------------- > drivers/iommu/amd_iommu_proto.h | 5 ---- > 4 files changed, 52 insertions(+), 47 deletions(-) ... > diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c > index ed21307d..5b7fb6c 100644 > --- a/drivers/iommu/amd_iommu_init.c > +++ b/drivers/iommu/amd_iommu_init.c > @@ -253,10 +253,6 @@ enum iommu_init_state { > static int __init iommu_go_to_state(enum iommu_init_state state); > static void init_device_table_dma(void); > > -static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu, > - u8 bank, u8 cntr, u8 fxn, > - u64 *value, bool is_write); > - > static inline void update_last_devid(u16 devid) > { > if (devid > amd_iommu_last_bdf) > @@ -1481,6 +1477,14 @@ static int __init init_iommu_all(struct > acpi_table_header *table) > return 0; > } > > +#define iommu_pc_get_reg(i, b, c, f, v) \ > + iommu_pc_get_set_reg(i, b, c, f, v, false) > + > +#define iommu_pc_set_reg(i, b, c, f, v) \ > + iommu_pc_get_set_reg(i, b, c, f, v, true) Those are completely useless indirection. Just call iommu_pc_get_set_reg() directly. > + > +static int iommu_pc_get_set_reg(struct amd_iommu *iommu, u8 bank, u8 cntr, > + u8 fxn, u64 *value, bool is_write); > > static void init_iommu_perf_ctr(struct amd_iommu *iommu) > { -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.