Re: [PATCH 04/14] powerpc/pseries: Stop using pdn->pe_number

2020-07-13 Thread Alexey Kardashevskiy



On 06/07/2020 11:36, Oliver O'Halloran wrote:
> The pci_dn->pe_number field is mainly used to track the IODA PE number of a
> device on PowerNV. At some point it grew a user in the pseries SR-IOV
> support which muddies the waters a bit, so remove it.
> 
> Signed-off-by: Oliver O'Halloran 


Reviewed-by: Alexey Kardashevskiy 



> ---
>  arch/powerpc/platforms/pseries/eeh_pseries.c | 10 --
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c 
> b/arch/powerpc/platforms/pseries/eeh_pseries.c
> index ace117f99d94..18a2522b9b5e 100644
> --- a/arch/powerpc/platforms/pseries/eeh_pseries.c
> +++ b/arch/powerpc/platforms/pseries/eeh_pseries.c
> @@ -52,8 +52,6 @@ void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
>   dev_dbg(>dev, "EEH: Setting up device\n");
>  #ifdef CONFIG_PCI_IOV
>   if (pdev->is_virtfn) {
> - struct pci_dn *physfn_pdn;
> -
>   pdn->device_id  =  pdev->device;
>   pdn->vendor_id  =  pdev->vendor;
>   pdn->class_code =  pdev->class;
> @@ -63,8 +61,6 @@ void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
>* completion from platform.
>*/
>   pdn->last_allow_rc =  0;
> - physfn_pdn  =  pci_get_pdn(pdev->physfn);
> - pdn->pe_number  =  physfn_pdn->pe_num_map[pdn->vf_index];
>   }
>  #endif
>   pseries_eeh_init_edev(pdn);
> @@ -772,8 +768,8 @@ int pseries_send_allow_unfreeze(struct pci_dn *pdn,
>  
>  static int pseries_call_allow_unfreeze(struct eeh_dev *edev)
>  {
> + int cur_vfs = 0, rc = 0, vf_index, bus, devfn, vf_pe_num;
>   struct pci_dn *pdn, *tmp, *parent, *physfn_pdn;
> - int cur_vfs = 0, rc = 0, vf_index, bus, devfn;
>   u16 *vf_pe_array;
>  
>   vf_pe_array = kzalloc(RTAS_DATA_BUF_SIZE, GFP_KERNEL);
> @@ -806,8 +802,10 @@ static int pseries_call_allow_unfreeze(struct eeh_dev 
> *edev)
>   }
>   } else {
>   pdn = pci_get_pdn(edev->pdev);
> - vf_pe_array[0] = cpu_to_be16(pdn->pe_number);
>   physfn_pdn = pci_get_pdn(edev->physfn);
> +
> + vf_pe_num = physfn_pdn->pe_num_map[edev->vf_index];
> + vf_pe_array[0] = cpu_to_be16(vf_pe_num);
>   rc = pseries_send_allow_unfreeze(physfn_pdn,
>vf_pe_array, 1);
>   pdn->last_allow_rc = rc;
> 

-- 
Alexey


[PATCH 04/14] powerpc/pseries: Stop using pdn->pe_number

2020-07-05 Thread Oliver O'Halloran
The pci_dn->pe_number field is mainly used to track the IODA PE number of a
device on PowerNV. At some point it grew a user in the pseries SR-IOV
support which muddies the waters a bit, so remove it.

Signed-off-by: Oliver O'Halloran 
---
 arch/powerpc/platforms/pseries/eeh_pseries.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c 
b/arch/powerpc/platforms/pseries/eeh_pseries.c
index ace117f99d94..18a2522b9b5e 100644
--- a/arch/powerpc/platforms/pseries/eeh_pseries.c
+++ b/arch/powerpc/platforms/pseries/eeh_pseries.c
@@ -52,8 +52,6 @@ void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
dev_dbg(>dev, "EEH: Setting up device\n");
 #ifdef CONFIG_PCI_IOV
if (pdev->is_virtfn) {
-   struct pci_dn *physfn_pdn;
-
pdn->device_id  =  pdev->device;
pdn->vendor_id  =  pdev->vendor;
pdn->class_code =  pdev->class;
@@ -63,8 +61,6 @@ void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
 * completion from platform.
 */
pdn->last_allow_rc =  0;
-   physfn_pdn  =  pci_get_pdn(pdev->physfn);
-   pdn->pe_number  =  physfn_pdn->pe_num_map[pdn->vf_index];
}
 #endif
pseries_eeh_init_edev(pdn);
@@ -772,8 +768,8 @@ int pseries_send_allow_unfreeze(struct pci_dn *pdn,
 
 static int pseries_call_allow_unfreeze(struct eeh_dev *edev)
 {
+   int cur_vfs = 0, rc = 0, vf_index, bus, devfn, vf_pe_num;
struct pci_dn *pdn, *tmp, *parent, *physfn_pdn;
-   int cur_vfs = 0, rc = 0, vf_index, bus, devfn;
u16 *vf_pe_array;
 
vf_pe_array = kzalloc(RTAS_DATA_BUF_SIZE, GFP_KERNEL);
@@ -806,8 +802,10 @@ static int pseries_call_allow_unfreeze(struct eeh_dev 
*edev)
}
} else {
pdn = pci_get_pdn(edev->pdev);
-   vf_pe_array[0] = cpu_to_be16(pdn->pe_number);
physfn_pdn = pci_get_pdn(edev->physfn);
+
+   vf_pe_num = physfn_pdn->pe_num_map[edev->vf_index];
+   vf_pe_array[0] = cpu_to_be16(vf_pe_num);
rc = pseries_send_allow_unfreeze(physfn_pdn,
 vf_pe_array, 1);
pdn->last_allow_rc = rc;
-- 
2.26.2