diff -urN oldtree/drivers/pcmcia/cardbus.c newtree/drivers/pcmcia/cardbus.c --- oldtree/drivers/pcmcia/cardbus.c 2006-09-24 17:03:56.000000000 -0400 +++ newtree/drivers/pcmcia/cardbus.c 2006-09-26 19:02:59.000000000 -0400 @@ -138,7 +138,7 @@ cs_dbg(s, 3, "read_cb_mem(%d, %#x, %u)\n", space, addr, len); - dev = pci_find_slot(s->cb_dev->subordinate->number, 0); + dev = pci_get_slot(s->cb_dev->subordinate, 0); if (!dev) goto fail; @@ -152,6 +152,9 @@ } res = dev->resource + space - 1; + + pci_dev_put(dev); + if (!res->flags) goto fail;