On Tue, Jun 11, 2019 at 03:47:58PM +1000, Alexey Kardashevskiy wrote:
> 
> 
> On 07/05/2019 14:30, Sam Bobroff wrote:
> > Also remove useless comment.
> > 
> > Signed-off-by: Sam Bobroff <sbobr...@linux.ibm.com>
> > Reviewed-by: Alexey Kardashevskiy <a...@ozlabs.ru>
> > ---
> >  arch/powerpc/kernel/eeh.c                    |  2 +-
> >  arch/powerpc/platforms/powernv/eeh-powernv.c | 14 ++++++++----
> >  arch/powerpc/platforms/pseries/eeh_pseries.c | 23 +++++++++++++++-----
> >  3 files changed, 28 insertions(+), 11 deletions(-)
> > 
> > diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
> > index 8d3c36a1f194..b14d89547895 100644
> > --- a/arch/powerpc/kernel/eeh.c
> > +++ b/arch/powerpc/kernel/eeh.c
> > @@ -1291,7 +1291,7 @@ void eeh_add_device_late(struct pci_dev *dev)
> >     pdn = pci_get_pdn_by_devfn(dev->bus, dev->devfn);
> >     edev = pdn_to_eeh_dev(pdn);
> >     if (edev->pdev == dev) {
> > -           pr_debug("EEH: Already referenced !\n");
> > +           pr_debug("EEH: Device %s already referenced!\n", pci_name(dev));
> >             return;
> >     }
> >  
> > diff --git a/arch/powerpc/platforms/powernv/eeh-powernv.c 
> > b/arch/powerpc/platforms/powernv/eeh-powernv.c
> > index 6fc1a463b796..0e374cdba961 100644
> > --- a/arch/powerpc/platforms/powernv/eeh-powernv.c
> > +++ b/arch/powerpc/platforms/powernv/eeh-powernv.c
> > @@ -50,10 +50,7 @@ void pnv_pcibios_bus_add_device(struct pci_dev *pdev)
> >     if (!pdev->is_virtfn)
> >             return;
> >  
> > -   /*
> > -    * The following operations will fail if VF's sysfs files
> > -    * aren't created or its resources aren't finalized.
> > -    */
> > +   pr_debug("%s: EEH: Setting up device %s.\n", __func__, pci_name(pdev));
> 
> 
> dev_dbg() seems more appropriate.

Oh! It does, or even pci_debug() :-)

I'll change it if I need to do another version, otherwise I'll clean it
up later.

> >     eeh_add_device_early(pdn);
> >     eeh_add_device_late(pdev);
> >     eeh_sysfs_add_device(pdev);
> > @@ -397,6 +394,10 @@ static void *pnv_eeh_probe(struct pci_dn *pdn, void 
> > *data)
> >     int ret;
> >     int config_addr = (pdn->busno << 8) | (pdn->devfn);
> >  
> > +   pr_debug("%s: probing %04x:%02x:%02x.%01x\n",
> > +           __func__, hose->global_number, pdn->busno,
> > +           PCI_SLOT(pdn->devfn), PCI_FUNC(pdn->devfn));
> > +
> >     /*
> >      * When probing the root bridge, which doesn't have any
> >      * subordinate PCI devices. We don't have OF node for
> > @@ -491,6 +492,11 @@ static void *pnv_eeh_probe(struct pci_dn *pdn, void 
> > *data)
> >     /* Save memory bars */
> >     eeh_save_bars(edev);
> >  
> > +   pr_debug("%s: EEH enabled on %02x:%02x.%01x PHB#%x-PE#%x\n",
> > +           __func__, pdn->busno, PCI_SLOT(pdn->devfn),
> > +           PCI_FUNC(pdn->devfn), edev->pe->phb->global_number,
> > +           edev->pe->addr);
> > +
> >     return NULL;
> >  }
> >  
> > diff --git a/arch/powerpc/platforms/pseries/eeh_pseries.c 
> > b/arch/powerpc/platforms/pseries/eeh_pseries.c
> > index 7aa50258dd42..ae06878fbdea 100644
> > --- a/arch/powerpc/platforms/pseries/eeh_pseries.c
> > +++ b/arch/powerpc/platforms/pseries/eeh_pseries.c
> > @@ -65,6 +65,8 @@ void pseries_pcibios_bus_add_device(struct pci_dev *pdev)
> >     if (!pdev->is_virtfn)
> >             return;
> >  
> > +   pr_debug("%s: EEH: Setting up device %s.\n", __func__, pci_name(pdev));
> > +
> >     pdn->device_id  =  pdev->device;
> >     pdn->vendor_id  =  pdev->vendor;
> >     pdn->class_code =  pdev->class;
> > @@ -251,6 +253,10 @@ static void *pseries_eeh_probe(struct pci_dn *pdn, 
> > void *data)
> >     int enable = 0;
> >     int ret;
> >  
> > +   pr_debug("%s: probing %04x:%02x:%02x.%01x\n",
> > +           __func__, pdn->phb->global_number, pdn->busno,
> > +           PCI_SLOT(pdn->devfn), PCI_FUNC(pdn->devfn));
> > +
> >     /* Retrieve OF node and eeh device */
> >     edev = pdn_to_eeh_dev(pdn);
> >     if (!edev || edev->pe)
> > @@ -294,7 +300,12 @@ static void *pseries_eeh_probe(struct pci_dn *pdn, 
> > void *data)
> >  
> >     /* Enable EEH on the device */
> >     ret = eeh_ops->set_option(&pe, EEH_OPT_ENABLE);
> > -   if (!ret) {
> > +   if (ret) {
> > +           pr_debug("%s: EEH failed to enable on %02x:%02x.%01x 
> > PHB#%x-PE#%x (code %d)\n",
> > +                   __func__, pdn->busno, PCI_SLOT(pdn->devfn),
> > +                   PCI_FUNC(pdn->devfn), pe.phb->global_number,
> > +                   pe.addr, ret);
> > +   } else {
> 
> 
> edev!=NULL here so you could do dev_dbg(&edev->pdev->dev,...) and skip
> PCI_SLOT/PCI_FUNC. Or is (edev!=NULL && edev->pdev==NULL) possible (it
> could be, just asking)?

I can see that edev will be non-NULL here, but that pr_debug() pattern
(using the PDN information to form the PCI address) is quite common
across the EEH code, so I think rather than changing a couple of
specific cases, I should do a separate cleanup patch and introduce
something like pdn_debug(pdn, "...."). What do you think?

(I don't know exactly when edev->pdev can be NULL.)

> 
> >             /* Retrieve PE address */
> >             edev->pe_config_addr = eeh_ops->get_pe_addr(&pe);
> >             pe.addr = edev->pe_config_addr;
> > @@ -310,11 +321,6 @@ static void *pseries_eeh_probe(struct pci_dn *pdn, 
> > void *data)
> >             if (enable) {
> >                     eeh_add_flag(EEH_ENABLED);
> >                     eeh_add_to_parent_pe(edev);
> > -
> > -                   pr_debug("%s: EEH enabled on %02x:%02x.%01x 
> > PHB#%x-PE#%x\n",
> > -                           __func__, pdn->busno, PCI_SLOT(pdn->devfn),
> > -                           PCI_FUNC(pdn->devfn), pe.phb->global_number,
> > -                           pe.addr);
> >             } else if (pdn->parent && pdn_to_eeh_dev(pdn->parent) &&
> >                        (pdn_to_eeh_dev(pdn->parent))->pe) {
> >                     /* This device doesn't support EEH, but it may have an
> > @@ -323,6 +329,11 @@ static void *pseries_eeh_probe(struct pci_dn *pdn, 
> > void *data)
> >                     edev->pe_config_addr = 
> > pdn_to_eeh_dev(pdn->parent)->pe_config_addr;
> >                     eeh_add_to_parent_pe(edev);
> >             }
> > +           pr_debug("%s: EEH %s on %02x:%02x.%01x PHB#%x-PE#%x (code 
> > %d)\n",
> > +                   __func__, (enable ? "enabled" : "unsupported"),
> > +                   pdn->busno, PCI_SLOT(pdn->devfn),
> > +                   PCI_FUNC(pdn->devfn), pe.phb->global_number,
> > +                   pe.addr, ret);
> 
> Same here. I understand though this one is a cut-n-paste :)
> 
> 
> >     }
> >  
> >     /* Save memory bars */
> > 
> 
> -- 
> Alexey

Attachment: signature.asc
Description: PGP signature

Reply via email to