> -----Original Message----- > From: Alex Williamson [mailto:alex.williamson@xxxxxxxxxx] > Sent: Tuesday, October 06, 2015 4:15 AM > To: Bhushan Bharat-R65777 <Bharat.Bhushan@xxxxxxxxxxxxx> > Cc: kvmarm@xxxxxxxxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; > christoffer.dall@xxxxxxxxxx; eric.auger@xxxxxxxxxx; pranavkumar@xxxxxxxxxx; > marc.zyngier@xxxxxxx; will.deacon@xxxxxxx > Subject: Re: [RFC PATCH 3/6] vfio: Extend iommu-info to return MSIs > automap state > > On Mon, 2015-10-05 at 06:00 +0000, Bhushan Bharat wrote: > > > -1138,6 +1156,8 @@ > > > > static long vfio_iommu_type1_ioctl(void *iommu_data, > > > > } > > > > } else if (cmd == VFIO_IOMMU_GET_INFO) { > > > > struct vfio_iommu_type1_info info; > > > > + struct iommu_domain_msi_maps msi_maps; > > > > + int ret; > > > > > > > > minsz = offsetofend(struct vfio_iommu_type1_info, > > > iova_pgsizes); > > > > > > > > @@ -1149,6 +1169,18 @@ static long vfio_iommu_type1_ioctl(void > > > > *iommu_data, > > > > > > > > info.flags = 0; > > > > > > > > + ret = vfio_domains_get_msi_maps(iommu, &msi_maps); > > > > + if (ret) > > > > + return ret; > > > > > > And now ioctl(VFIO_IOMMU_GET_INFO) no longer works for any > IOMMU > > > implementing domain_get_attr but not supporting > > > DOMAIN_ATTR_MSI_MAPPING. > > > > With this current patch version this will get the default assumed behavior > as you commented on previous patch. > > How so? You are right, the ioctl will return failure. But that should be ok, right? > > + msi_maps->automap = true; > + msi_maps->override_automap = false; > + > + if (domain->ops->domain_get_attr) > + ret = domain->ops->domain_get_attr(domain, attr, > + data); > > If domain_get_attr is implemented, but DOMAIN_ATTR_MSI_MAPPING is > not, ret should be an error code. Currently it returns same error code returned by domain->ops->domain_get_attr(). I do not think we want to complicate that we return an error to user-space that msi's probably cannot be used but user-space can continue with Legacy interrupt, or you want that? Thanks -Bharat ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�