Re: [PATCH v2] iommu/arm: Add module parameter to set msi iova address
From: Will Deacon
Date: Mon Sep 28 2020 - 16:57:06 EST
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.mannam@xxxxxxxxxxxx>
> >>
> >> 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.mannam@xxxxxxxxxxxx>
> >> Co-developed-by: Vennila Megavannan <vemegava@xxxxxxxxxxxxxxxxxxx>
> >> Signed-off-by: Vennila Megavannan <vemegava@xxxxxxxxxxxxxxxxxxx>
> >> ---
> >> 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