From: Alan Cox Mirrors the drivers/ata version, hold a reference to the host bridge while we are doing setup. Signed-off-by: Alan Cox Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/ide/pci/sis5513.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN drivers/ide/pci/sis5513.c~pci-sis5513-switch-to-pci-refcounting drivers/ide/pci/sis5513.c --- a/drivers/ide/pci/sis5513.c~pci-sis5513-switch-to-pci-refcounting +++ a/drivers/ide/pci/sis5513.c @@ -739,7 +739,7 @@ static unsigned int __devinit init_chips for (i = 0; i < ARRAY_SIZE(SiSHostChipInfo) && !chipset_family; i++) { - host = pci_find_device(PCI_VENDOR_ID_SI, SiSHostChipInfo[i].host_id, NULL); + host = pci_get_device(PCI_VENDOR_ID_SI, SiSHostChipInfo[i].host_id, NULL); if (!host) continue; @@ -753,6 +753,7 @@ static unsigned int __devinit init_chips if (hostrev >= 0x30) chipset_family = ATA_100a; } + pci_dev_put(host); printk(KERN_INFO "SIS5513: %s %s controller\n", SiSHostChipInfo[i].name, chipset_capability[chipset_family]); _