Messages in this thread | | | Date | Thu, 10 Mar 2005 21:23:32 -0500 | From | Dave Jones <> | Subject | Re: AGP bogosities |
| |
On Fri, Mar 11, 2005 at 01:18:36PM +1100, Paul Mackerras wrote: > Dave Jones writes: > > > > cap_ptr = pci_find_capability(device, PCI_CAP_ID_AGP); > > > - if (!cap_ptr) { > > > - pci_dev_put(device); > > > - continue; > > > - } > > > - cap_ptr = 0; > > > } > > > > This part I'm not so sure about. > > The pci_get_class() call a few lines above will get a refcount that > > we will now never release. > > The point is that pci_get_class does a pci_dev_put() on the "from" > parameter, so your code ended up doing a double put.
After it does that pci_dev_put on the from, it does another pci_dev_get on 'dev', which is what my put was releasing.
Or am I terribly confused ?
Dave
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |