[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] xen/pci: remove logic catering to adding VF without PF
commit 8fe330a4daf64d72b8e55682d805aac90645fd06 Author: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> AuthorDate: Tue Nov 26 11:23:42 2024 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Nov 26 11:23:42 2024 +0100 xen/pci: remove logic catering to adding VF without PF The hardware domain is expected to add a PF first before adding associated VFs. If adding happens out of order, print a warning and return an error. Drop the recursive call to pci_add_device(). Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/drivers/passthrough/pci.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c index a5ad86267f..777c6b1a7f 100644 --- a/xen/drivers/passthrough/pci.c +++ b/xen/drivers/passthrough/pci.c @@ -699,30 +699,13 @@ int pci_add_device(u16 seg, u8 bus, u8 devfn, if ( !pf_pdev ) { - ret = pci_add_device(seg, info->physfn.bus, info->physfn.devfn, - NULL, node); - if ( ret ) - { - printk(XENLOG_WARNING - "Failed to add SR-IOV device PF %pp for VF %pp\n", - &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn), - &pdev->sbdf); - free_pdev(pseg, pdev); - goto out; - } - pf_pdev = pci_get_pdev(NULL, PCI_SBDF(seg, info->physfn.bus, - info->physfn.devfn)); - if ( !pf_pdev ) - { - printk(XENLOG_ERR - "Inconsistent PCI state: failed to find newly added PF %pp for VF %pp\n", - &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn), - &pdev->sbdf); - ASSERT_UNREACHABLE(); - free_pdev(pseg, pdev); - ret = -EILSEQ; - goto out; - } + printk(XENLOG_WARNING + "Attempted to add SR-IOV VF %pp without PF %pp\n", + &pdev->sbdf, + &PCI_SBDF(seg, info->physfn.bus, info->physfn.devfn)); + free_pdev(pseg, pdev); + ret = -ENODEV; + goto out; } if ( !pdev->pf_pdev ) -- generated by git-patchbot for /home/xen/git/xen.git#master
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |