Messages in this thread | | | From | Thomas Renninger <> | Subject | Re: [PATCH] cpupower: fix breakage from libpci API change | Date | Tue, 14 Apr 2015 18:28:59 +0200 |
| |
Hi,
On Monday, April 13, 2015 10:24:01 PM Lucas Stach wrote: > libpci 3.3.0 introduced an additional member in the pci_filter struct > which needs to be initialized to -1 to get the same behavior as before > the API change. Sounds not that clever, but there probably is a reason for this...
I am not that familiar with the pci lib and its recent changes, but below patch looks reasonable.
Acked-by: Thomas Renninger <trenn@suse.de>
> The libpci internal helpers got updated accordingly, > but as the cpupower pci helpers initialized the struct themselves the > behavior changed. > > Use the libpci helper pci_filter_init() to fix this and guard against > similar breakages in the future. > > This fixes probing of the AMD fam12h/14h cpuidle monitor on systems > with libpci >= 3.3.0. > > Signed-off-by: Lucas Stach <dev@lynxeye.de> > --- > tools/power/cpupower/utils/helpers/pci.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/tools/power/cpupower/utils/helpers/pci.c > b/tools/power/cpupower/utils/helpers/pci.c index 9690798..8b27898 100644 > --- a/tools/power/cpupower/utils/helpers/pci.c > +++ b/tools/power/cpupower/utils/helpers/pci.c > @@ -25,14 +25,21 @@ > struct pci_dev *pci_acc_init(struct pci_access **pacc, int domain, int bus, > int slot, int func, int vendor, int dev) > { > - struct pci_filter filter_nb_link = { domain, bus, slot, func, > - vendor, dev }; > + struct pci_filter filter_nb_link; > struct pci_dev *device; > > *pacc = pci_alloc(); > if (*pacc == NULL) > return NULL; > > + pci_filter_init(*pacc, &filter_nb_link); > + filter_nb_link.domain = domain; > + filter_nb_link.bus = bus; > + filter_nb_link.slot = slot; > + filter_nb_link.func = func; > + filter_nb_link.vendor = vendor; > + filter_nb_link.device = dev; > + > pci_init(*pacc); > pci_scan_bus(*pacc);
| |