Xu Yilun wrote: > > @@ -573,10 +690,13 @@ int pci_tsm_bind(struct pci_dev *pdev, struct kvm *kvm, u64 tdi_id) > > return -EBUSY; > > } > > > > - tdi = tsm_ops->bind(pdev, pf0_dev, kvm, tdi_id); > > + tdi = tsm_ops->bind(pdev, dsm_dev, kvm, tdi_id); > > if (!tdi) > > return -ENXIO; > > > > + tdi->pdev = pdev; > > + tdi->dsm_dev = dsm_dev; > > + tdi->kvm = kvm; > > I think it is still better that platform TSM drivers assign these > fields in ->bind(), just as pci_tsm_ops.probe() do. It is > inconveniente that struct pci_tdi is not initialized, then these > parameters have to be passed again and again between functions. Ok, I added pci_tdi_initialize() as a helper for low-level TSM driver implementations of ->bind().