Hi, Joerg, > -----Original Message----- > From: j...@8bytes.org [mailto:j...@8bytes.org] > Sent: Wednesday, September 03, 2014 11:06 PM > To: Su, Friendy > Cc: iommu@lists.linux-foundation.org; linux-ker...@vger.kernel.org > Subject: Re: [PATCH v1 1/1] iommu/amd: set iommu for early mapped > ioapic/hpet > > On Mon, Sep 01, 2014 at 02:17:44PM +0800, Su, Friendy wrote: > > diff --git a/drivers/iommu/amd_iommu_init.c > b/drivers/iommu/amd_iommu_init.c > > index 3783e0b..148ab61 100644 > > --- a/drivers/iommu/amd_iommu_init.c > > +++ b/drivers/iommu/amd_iommu_init.c > > @@ -747,7 +747,7 @@ static int __init add_special_device(u8 type, u8 id, > u16 devid, bool cmd_line) > > return 0; > > } > > > > -static int __init add_early_maps(void) > > +static int __init add_early_maps(struct amd_iommu *iommu) > > { > > int i, ret; > > > > @@ -758,6 +758,11 @@ static int __init add_early_maps(void) > > early_ioapic_map[i].cmd_line); > > if (ret) > > return ret; > > + /* > > + * early mapped ioapci overrides ACPI IVRS, > > + * they should be always controlled by iommu. > > + */ > > + set_iommu_for_device(iommu, early_ioapic_map[i].devid); > > } > > > > for (i = 0; i < early_hpet_map_size; ++i) { > > @@ -767,6 +772,11 @@ static int __init add_early_maps(void) > > early_hpet_map[i].cmd_line); > > if (ret) > > return ret; > > + /* > > + * early mapped hpet overrides ACPI IVRS, > > + * they should be always controlled by iommu. > > + */ > > + set_iommu_for_device(iommu, early_hpet_map[i].devid); > > This doesn't work on machines with multiple IOMMUs in it. Also the > problem only exists if there is no IVHD entry in the IVRS table for the > device containing IOAPIC and HPET. > > But if this IVHD entry is not present we can't reliably know which IOMMU > is responsible for a given IOAPIC/HPET. > > > Joerg > Thanks. You are correct, we should handle early mapped inside IOMMU whose IVHD reports the same ID. I will update.
Friendy _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu