diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c --- a/drivers/ide/pci/alim15x3.c +++ b/drivers/ide/pci/alim15x3.c @@ -591,7 +591,7 @@ static unsigned int __devinit init_chips pci_read_config_byte(dev, PCI_REVISION_ID, &m5229_revision); - isa_dev = pci_find_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL); + isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL); #if defined(DISPLAY_ALI_TIMINGS) && defined(CONFIG_PROC_FS) if (!ali_proc) { @@ -877,9 +877,13 @@ static ide_pci_device_t ali15x3_chipset static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_device_id *id) { ide_pci_device_t *d = &ali15x3_chipset; + struct pci_dev *pdev; - if(pci_find_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100, NULL)) + if((pdev = pci_get_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100, + NULL))) { + pci_dev_put(pdev); printk(KERN_ERR "Warning: ATI Radeon IGP Northbridge is not yet fully tested.\n"); + } #if defined(CONFIG_SPARC64) d->init_hwif = init_hwif_common_ali15x3; @@ -903,9 +907,18 @@ static struct pci_driver driver = { static int ali15x3_ide_init(void) { + isa_dev = NULL; return ide_pci_register_driver(&driver); } +#ifdef MODULE +static void __exit ali15x3_ide_exit(void) +{ + pci_dev_put(isa_dev); +} + +module_exit(ali15x3_ide_exit); +#endif module_init(ali15x3_ide_init); MODULE_AUTHOR("Michael Aubry, Andrzej Krzysztofowicz, CJ, Andre Hedrick, Alan Cox");