X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Faccess.c;h=b257849a685e198418de511d2d0fed12607f850b;hb=8b122188dfd404984eb360e8d876682fe7eb1613;hp=52f1432915a798899108b54e5e55bb3bb511152a;hpb=c02d903c2a8971718c7dea482075f4ddb8e3c1fe;p=pciutils.git diff --git a/lib/access.c b/lib/access.c index 52f1432..b257849 100644 --- a/lib/access.c +++ b/lib/access.c @@ -86,11 +86,6 @@ void pci_free_dev(struct pci_dev *d) pci_free_caps(d); pci_free_properties(d); - - pci_mfree(d->module_alias); - pci_mfree(d->label); - pci_mfree(d->phy_slot); - pci_mfree(d); } @@ -186,6 +181,9 @@ static void pci_reset_properties(struct pci_dev *d) { d->known_fields = 0; + d->phy_slot = NULL; + d->module_alias = NULL; + d->label = NULL; pci_free_caps(d); pci_free_properties(d); } @@ -193,12 +191,13 @@ pci_reset_properties(struct pci_dev *d) int pci_fill_info_v35(struct pci_dev *d, int flags) { - if (flags & PCI_FILL_RESCAN) + unsigned int uflags = flags; + if (uflags & PCI_FILL_RESCAN) { - flags &= ~PCI_FILL_RESCAN; + uflags &= ~PCI_FILL_RESCAN; pci_reset_properties(d); } - if (flags & ~d->known_fields) + if (uflags & ~d->known_fields) d->known_fields |= d->methods->fill_info(d, flags & ~d->known_fields); return d->known_fields; }