On Wed, Sep 23, 2020 at 08:32:43AM +0200, Auger Eric wrote: > On 9/21/20 10:45 PM, Will Deacon wrote: > > On Mon, Sep 14, 2020 at 11:13:07AM -0700, Vennila Megavannan wrote: > >> From: Srinath Mannam <srinath.man...@broadcom.com> > >> > >> Add provision to change default value of MSI IOVA base to platform's > >> suitable IOVA using module parameter. The present hardcoded MSI IOVA base > >> may not be the accessible IOVA ranges of platform. > >> > >> If any platform has the limitaion to access default MSI IOVA, then it can > >> be changed using "arm-smmu.msi_iova_base=0xa0000000" command line argument. > >> > >> Signed-off-by: Srinath Mannam <srinath.man...@broadcom.com> > >> Co-developed-by: Vennila Megavannan <vemeg...@linux.microsoft.com> > >> Signed-off-by: Vennila Megavannan <vemeg...@linux.microsoft.com> > >> --- > >> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 5 ++++- > >> drivers/iommu/arm/arm-smmu/arm-smmu.c | 5 ++++- > >> 2 files changed, 8 insertions(+), 2 deletions(-) > > > > This feels pretty fragile. Wouldn't it be better to realise that there's > > a region conflict with iommu_dma_get_resv_regions() and move the MSI window > > accordingly at runtime? > > Since cd2c9fcf5c66 ("iommu/dma: Move PCI window region reservation back > into dma specific path"), the PCI host bridge windows are not exposed by > iommu_dma_get_resv_regions() anymore. If I understood correctly, what is > attempted here is to avoid the collision between such PCI host bridge > window and the MSI IOVA range.
Either way, I think the kernel should figure this out at runtime and not rely on a cmdline option to tell it where to place the region. Will