Dan Williams <dan.j.williams@xxxxxxxxx> writes: > Aneesh Kumar K.V wrote: >> Dan Williams <dan.j.williams@xxxxxxxxx> writes: >> >> .... >> >> > +static void pci_tsm_pf0_init(struct pci_dev *pdev) >> > +{ >> > + bool tee_cap; >> > + >> > + tee_cap = pdev->devcap & PCI_EXP_DEVCAP_TEE; >> > + >> > + if (!(pdev->ide_cap || tee_cap)) >> > + return; >> > >> >> If we expect to use pci_tsm_pf0_init and is_pci_tsm_pf0() from the >> guest, can we have the ide_cap and tee_cap check here? Will that be true >> for all devices assigned to the guest? > > I do not expect this path to be taken for a guest device. IDE is not > relevant for TDIs in the guest and function0 is not a requirement guest > BDFs. I still need to add this to samples/devsec/, but the expectation > is that in "TVM mode" the presence of PCI_EXP_DEVCAP_TEE is sufficient > to route any PCI function to tsm_ops->probe(). We do that because we expose /sys/bus/pci/devices/<x>/tsm/connect to guest and we have static int pci_tsm_connect(struct pci_dev *pdev) { struct pci_tsm_pf0 *tsm = to_pci_tsm_pf0(pdev->tsm); int rc; .... if (tvm_mode()) rc = __driver_idle_connect(pdev); else rc = tsm_ops->connect(pdev); -aneesh