Hi Andre, On 3/12/20 7:19 PM, Andre Przywara wrote: > When we try to get an MSI cookie for a VFIO device, that can fail if > CONFIG_IOMMU_DMA is not set. In this case iommu_get_msi_cookie() returns > -ENODEV, and that should not be fatal. > > Ignore that case and proceed with the initialisation. > > This fixes VFIO with a platform device on the Calxeda Midway (no MSIs). > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> Would you mind resending this as non RFC (+ R-b tags) so that it gets a chance to be taken by Alex for 5.7 Thanks Eric > --- > Hi, > > not sure this is the right fix, or we should rather check if the > platform doesn't support MSIs at all (which doesn't seem to be easy > to do). > Or is this because arm-smmu.c always reserves an IOMMU_RESV_SW_MSI > region? > > Also this seems to be long broken, actually since Eric introduced MSI > support in 4.10-rc3, but at least since the initialisation order was > fixed with f6810c15cf9. > > Grateful for any insight. > > Cheers, > Andre > > drivers/vfio/vfio_iommu_type1.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c > index a177bf2c6683..467e217ef09a 100644 > --- a/drivers/vfio/vfio_iommu_type1.c > +++ b/drivers/vfio/vfio_iommu_type1.c > @@ -1786,7 +1786,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, > > if (resv_msi) { > ret = iommu_get_msi_cookie(domain->domain, resv_msi_base); > - if (ret) > + if (ret && ret != -ENODEV) > goto out_detach; > } > >