===== drivers/pci/remove.c 1.6 vs edited ===== --- 1.6/drivers/pci/remove.c 2005-01-14 18:06:55 -05:00 +++ edited/drivers/pci/remove.c 2005-03-11 21:18:22 -05:00 @@ -19,8 +19,12 @@ pci_cleanup_rom(dev); for (i = 0; i < PCI_NUM_RESOURCES; i++) { struct resource *res = dev->resource + i; - if (res->parent) + if (res && res->parent) { + printk(KERN_WARNING "WARNING: PCI RESOURCE 0x%lx:0x%lx for dev %s free'd by PCI subsystem.", + pci_resource_start(dev,i), pci_resource_end(dev,i), dev->slot_name); + printk(KERN_WARNING " This should be done at the driver level."); release_resource(res); + } } } ===== kernel/resource.c 1.26 vs edited ===== --- 1.26/kernel/resource.c 2005-01-08 00:44:13 -05:00 +++ edited/kernel/resource.c 2005-03-11 20:56:47 -05:00 @@ -505,6 +505,7 @@ *p = res->sibling; write_unlock(&resource_lock); kfree(res); + res = NULL; return; } p = &res->sibling;