On Wed, 16 Oct 2024 at 23:25, Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > On Wed, Oct 16, 2024 at 09:58:36AM +0800, Zhangfei Gao wrote: > > On Tue, 15 Oct 2024 at 20:54, Jason Gunthorpe <jgg@xxxxxxxx> wrote: > > > > > > On Tue, Oct 15, 2024 at 11:19:33AM +0800, Zhangfei Gao wrote: > > > > > +static int iommufd_fault_iopf_enable(struct iommufd_device *idev) > > > > > +{ > > > > > + struct device *dev = idev->dev; > > > > > + int ret; > > > > > + > > > > > + /* > > > > > + * Once we turn on PCI/PRI support for VF, the response failure code > > > > > + * should not be forwarded to the hardware due to PRI being a shared > > > > > + * resource between PF and VFs. There is no coordination for this > > > > > + * shared capability. This waits for a vPRI reset to recover. > > > > > + */ > > > > > + if (dev_is_pci(dev) && to_pci_dev(dev)->is_virtfn) > > > > > + return -EINVAL; > > > > > > > > I am using the SMMUv3 stall feature, and need to forward this to hardware, > > > > And now I am hacking to comment this check. > > > > Any suggestions? > > > > > > Are you using PCI SRIOV and stall together? > > > > Only use smmuv3 stall feature. > > Then isn't to_pci_dev(dev)->is_virtfn == false? > > That should only be true with SRIOV Do you mean if (dev_is_pci(dev) && to_pci_dev(dev)->is_virtfn == false) return -EINVAL; This is fine > > > > FEAT_SVA needs to be deleted, not added too. > > > > > > smmu-v3 needs some more fixing to move that > > > arm_smmu_master_enable_sva() logic into domain attachment. > > > > Will think about this, Thanks Jason > > Can you test it if a patch is made? Yes, sure. Thanks