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
