On Sun, 2007-07-15 at 03:40 -0400, Jeff Garzik wrote: > To be more clear, your solution is incorrect unless the pci_dev_put() > occurs after the last reference to hw.{elsa,diva,hfc,njet,...}.dev, > which is where the HiSax ISDN drivers store their reference to struct > pci_dev during the runtime life of the PCI device. > > Am I missing where your patch does this? It is really missing :-( > > By way of further interest, a few hours _before_ (yes, really) I saw > your patches, I resumed converting the ISDN HiSax PCI drivers to use the > PCI driver API. You can find this work in > git://git.kernel.org/.../jgarzik/misc-2.6.git#isdn-pci. > > If you fix your patches' lifetime problems, I will ACK them myself, > since my effort is a spare time effort. But just wanted you to be aware > that I am deep into the code you are fixing, and can at least speak > somewhat knowledgeably on the specific lines of code you are changing. I can see the bug. Thanks for updating me. I really missed the point that these whole set of drivers are a part of hisax.ko...
most of the initialization is done in hisax/config.c Now are you suggesting that we should have a pci_dev_put in config.c where you have the module_exit. I am not sure where I can call the dev_put. consider hisax/avm_pci.c in which if we have a code like the below dev_avm = pci_get_device(PCI_VENDOR_ID_AVM, PCI_DEVICE_ID_AVM_A1, dev_avm))) { dev_avm is getting initialized in this file static struct pci_dev *dev_avm __devinitdata = NULL; so can I do an extern static struct pci_dev *dev_avm; in the config.c and call pci_dev_put(dev_avm) in config.c file's module_exit or whereever there is an error return? > > Jeff > > > -surya. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/