RE: [PATCH 3/3] perf/x86/intel/uncore: Add Skylake server uncore support

From: Liang, Kan
Date: Mon Aug 15 2016 - 10:13:37 EST




> > diff --git a/arch/x86/events/intel/uncore_snbep.c
> > b/arch/x86/events/intel/uncore_snbep.c
> > index 3719af5..55a081e 100644
> > --- a/arch/x86/events/intel/uncore_snbep.c
> > +++ b/arch/x86/events/intel/uncore_snbep.c
> > +
> > +static int skx_count_chabox(void)
> > +{
> > + struct pci_dev *chabox_dev = NULL;
> > + int bus, count = 0;
> > +
> > + while (1) {
> > + chabox_dev = pci_get_device(PCI_VENDOR_ID_INTEL, 0x208d,
> chabox_dev);
> > + if (!chabox_dev)
> > + break;
> > + if (count == 0)
> > + bus = chabox_dev->bus->number;
> > + if (bus != chabox_dev->bus->number)
> > + break;
> > + count++;
> > + }
> > +
> > + pci_dev_put(chabox_dev);
> > + return count;
> > +}
>
> Kan, do we not need to call pci_dev_put() each time we call pci_get_device()?

The pci_get_device will always decrease the reference count for chabox_dev, if
it is not NULL.
So I think it's OK to only pci_dev_put it at last.

Thanks,
Kan