]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
powerpc/pcidn: Warn when sriov pci_dn management is used incorrectly
authorOliver O'Halloran <oohall@gmail.com>
Wed, 21 Aug 2019 06:26:55 +0000 (16:26 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 23 Jan 2020 10:31:19 +0000 (21:31 +1100)
These functions can only be used on a SR-IOV capable physical function and
they're only called in pcibios_sriov_enable / disable. Make them emit a
warning in the future if they're used incorrectly and remove the dead
code that checks if the device is a VF.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Reviewed-by: Sam Bobroff <sbobroff@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190821062655.19735-3-oohall@gmail.com
arch/powerpc/kernel/pci_dn.c

index c158ac897efba4d606c6b9d6c3271edffe019ae1..4e654df55969e21730f9c93ebf111aa76bb9ef52 100644 (file)
@@ -158,8 +158,8 @@ struct pci_dn *add_sriov_vf_pdns(struct pci_dev *pdev)
        int i;
 
        /* Only support IOV for now */
-       if (!pdev->is_physfn)
-               return pci_get_pdn(pdev);
+       if (WARN_ON(!pdev->is_physfn))
+               return NULL;
 
        /* Check if VFs have been populated */
        pdn = pci_get_pdn(pdev);
@@ -199,19 +199,8 @@ void remove_sriov_vf_pdns(struct pci_dev *pdev)
        struct pci_dn *pdn, *tmp;
        int i;
 
-       /*
-        * VF and VF PE are created/released dynamically, so we need to
-        * bind/unbind them.  Otherwise the VF and VF PE would be mismatched
-        * when re-enabling SR-IOV.
-        */
-       if (pdev->is_virtfn) {
-               pdn = pci_get_pdn(pdev);
-               pdn->pe_number = IODA_INVALID_PE;
-               return;
-       }
-
        /* Only support IOV PF for now */
-       if (!pdev->is_physfn)
+       if (WARN_ON(!pdev->is_physfn))
                return;
 
        /* Check if VFs have been populated */