From: Dimitri Daskalakis <[email protected]>

Convert SR-IOV-specific is_physfn / is_virtfn reads in the PowerPC
PCI code to use pci_is_sriov_physfn() / pci_is_sriov_virtfn(). These
call sites are all SR-IOV-specific: they guard SR-IOV state
dereferences, VF PE management, or sit inside #ifdef CONFIG_PCI_IOV
blocks. Converting them keeps SR-IOV semantics intact once is_physfn
and is_virtfn widen to cover any virtualization type.

Files touched:
  arch/powerpc/kernel/pci_dn.c
  arch/powerpc/platforms/powernv/pci-ioda.c
  arch/powerpc/platforms/powernv/pci-sriov.c
  arch/powerpc/platforms/pseries/eeh_pseries.c
  arch/powerpc/platforms/pseries/setup.c

No functional changes.

Assisted-by: Claude:claude-opus-4.7
Signed-off-by: Dimitri Daskalakis <[email protected]>
---
 arch/powerpc/kernel/pci_dn.c                 |  4 ++--
 arch/powerpc/platforms/powernv/pci-ioda.c    |  6 +++---
 arch/powerpc/platforms/powernv/pci-sriov.c   | 10 +++++-----
 arch/powerpc/platforms/pseries/eeh_pseries.c |  8 ++++----
 arch/powerpc/platforms/pseries/setup.c       |  4 ++--
 5 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index a7b664befed2..cf44ec368a36 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -176,7 +176,7 @@ struct pci_dn *add_sriov_vf_pdns(struct pci_dev *pdev)
        int i;
 
        /* Only support IOV for now */
-       if (WARN_ON(!pdev->is_physfn))
+       if (WARN_ON(!pci_is_sriov_physfn(pdev)))
                return NULL;
 
        /* Check if VFs have been populated */
@@ -221,7 +221,7 @@ void remove_sriov_vf_pdns(struct pci_dev *pdev)
        int i;
 
        /* Only support IOV PF for now */
-       if (WARN_ON(!pdev->is_physfn))
+       if (WARN_ON(!pci_is_sriov_physfn(pdev)))
                return;
 
        /* Check if VFs have been populated */
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c 
b/arch/powerpc/platforms/powernv/pci-ioda.c
index 32ecbc46e74b..63eacc8001fe 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -987,7 +987,7 @@ static void pnv_pci_ioda_dma_dev_setup(struct pci_dev *pdev)
        pe = pnv_pci_bdfn_to_pe(phb, pci_dev_id(pdev));
        if (!pe) {
                /* VF PEs should be pre-configured in pnv_pci_sriov_enable() */
-               if (WARN_ON(pdev->is_virtfn))
+               if (WARN_ON(pci_is_sriov_virtfn(pdev)))
                        return;
 
                pnv_pci_configure_bus(pdev->bus);
@@ -2379,7 +2379,7 @@ static void pnv_pci_release_device(struct pci_dev *pdev)
        struct pnv_ioda_pe *pe;
 
        /* The VF PE state is torn down when sriov_disable() is called */
-       if (pdev->is_virtfn)
+       if (pci_is_sriov_virtfn(pdev))
                return;
 
        if (!pdn || pdn->pe_number == IODA_INVALID_PE)
@@ -2391,7 +2391,7 @@ static void pnv_pci_release_device(struct pci_dev *pdev)
         * the iov state at probe time since we need to fiddle with the IOV
         * resources.
         */
-       if (pdev->is_physfn)
+       if (pci_is_sriov_physfn(pdev))
                kfree(pdev->dev.archdata.iov_data);
 #endif
 
diff --git a/arch/powerpc/platforms/powernv/pci-sriov.c 
b/arch/powerpc/platforms/powernv/pci-sriov.c
index 7105a573aec4..1113488f4372 100644
--- a/arch/powerpc/platforms/powernv/pci-sriov.c
+++ b/arch/powerpc/platforms/powernv/pci-sriov.c
@@ -225,7 +225,7 @@ static void pnv_pci_ioda_fixup_iov_resources(struct pci_dev 
*pdev)
 
 void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev)
 {
-       if (pdev->is_virtfn) {
+       if (pci_is_sriov_virtfn(pdev)) {
                struct pnv_ioda_pe *pe = pnv_ioda_get_pe(pdev);
 
                /*
@@ -235,7 +235,7 @@ void pnv_pci_ioda_fixup_iov(struct pci_dev *pdev)
                 */
                pe->pdev = pdev;
                WARN_ON(!(pe->flags & PNV_IODA_PE_VF));
-       } else if (pdev->is_physfn) {
+       } else if (pci_is_sriov_physfn(pdev)) {
                /*
                 * For PFs adjust their allocated IOV resources to match what
                 * the PHB can support using its M64 BAR table.
@@ -479,7 +479,7 @@ static void pnv_ioda_release_vf_PE(struct pci_dev *pdev)
 
        phb = pci_bus_to_pnvhb(pdev->bus);
 
-       if (!pdev->is_physfn)
+       if (!pci_is_sriov_physfn(pdev))
                return;
 
        /* FIXME: Use pnv_ioda_release_pe()? */
@@ -508,7 +508,7 @@ static int pnv_pci_vf_resource_shift(struct pci_dev *dev, 
int offset)
        u16 num_vfs;
        int i;
 
-       if (!dev->is_physfn)
+       if (!pci_is_sriov_physfn(dev))
                return -EINVAL;
        iov = pnv_iov_get(dev);
 
@@ -620,7 +620,7 @@ static void pnv_ioda_setup_vf_PE(struct pci_dev *pdev, u16 
num_vfs)
        struct pnv_iov_data   *iov;
        struct pci_dn         *pdn;
 
-       if (!pdev->is_physfn)
+       if (!pci_is_sriov_physfn(pdev))
                return;
 
        phb = pci_bus_to_pnvhb(pdev->bus);
diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c 
b/arch/powerpc/platforms/pseries/eeh_pseries.c
index b12ef382fec7..32030ac9be51 100644
--- a/arch/powerpc/platforms/pseries/eeh_pseries.c
+++ b/arch/powerpc/platforms/pseries/eeh_pseries.c
@@ -54,7 +54,7 @@ static void pseries_pcibios_bus_add_device(struct pci_dev 
*pdev)
 
        dev_dbg(&pdev->dev, "EEH: Setting up device\n");
 #ifdef CONFIG_PCI_IOV
-       if (pdev->is_virtfn) {
+       if (pci_is_sriov_virtfn(pdev)) {
                pdn->device_id  =  pdev->device;
                pdn->vendor_id  =  pdev->vendor;
                pdn->class_code =  pdev->class;
@@ -68,7 +68,7 @@ static void pseries_pcibios_bus_add_device(struct pci_dev 
*pdev)
 #endif
        pseries_eeh_init_edev(pdn);
 #ifdef CONFIG_PCI_IOV
-       if (pdev->is_virtfn) {
+       if (pci_is_sriov_virtfn(pdev)) {
                /*
                 * FIXME: This really should be handled by choosing the right
                 *        parent PE in pseries_eeh_init_edev().
@@ -731,7 +731,7 @@ static int pseries_call_allow_unfreeze(struct eeh_dev *edev)
        if (!vf_pe_array)
                return -ENOMEM;
        if (pci_num_vf(edev->physfn ? edev->physfn : edev->pdev)) {
-               if (edev->pdev->is_physfn) {
+               if (pci_is_sriov_physfn(edev->pdev)) {
                        cur_vfs = pci_num_vf(edev->pdev);
                        pdn = eeh_dev_to_pdn(edev);
                        parent = pdn->parent;
@@ -779,7 +779,7 @@ static int pseries_notify_resume(struct eeh_dev *edev)
        if (rtas_function_token(RTAS_FN_IBM_OPEN_SRIOV_ALLOW_UNFREEZE) == 
RTAS_UNKNOWN_SERVICE)
                return -EINVAL;
 
-       if (edev->pdev->is_physfn || edev->pdev->is_virtfn)
+       if (pci_is_sriov_physfn(edev->pdev) || pci_is_sriov_virtfn(edev->pdev))
                return pseries_call_allow_unfreeze(edev);
 
        return 0;
diff --git a/arch/powerpc/platforms/pseries/setup.c 
b/arch/powerpc/platforms/pseries/setup.c
index 50b26ed8432d..8165ae9adbd6 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -778,7 +778,7 @@ static void pseries_pci_fixup_iov_resources(struct pci_dev 
*pdev)
        const int *indexes;
        struct device_node *dn = pci_device_to_OF_node(pdev);
 
-       if (!pdev->is_physfn)
+       if (!pci_is_sriov_physfn(pdev))
                return;
        /*Firmware must support open sriov otherwise don't configure*/
        indexes = of_get_property(dn, "ibm,open-sriov-vf-bar-info", NULL);
@@ -799,7 +799,7 @@ static resource_size_t 
pseries_pci_iov_resource_alignment(struct pci_dev *pdev,
        if (!reg)
                return pci_iov_resource_size(pdev, resno);
 
-       if (!pdev->is_physfn)
+       if (!pci_is_sriov_physfn(pdev))
                return 0;
        return pseries_get_iov_fw_value(pdev,
                                        resno - PCI_IOV_RESOURCES,
-- 
2.52.0


Reply via email to