--- kernel/resource.c.orig 2005-03-10 14:57:58.317008676 -0500 +++ kernel/resource.c 2005-03-10 14:58:02.310172689 -0500 @@ -495,20 +495,21 @@ break; if (res->start <= start && res->end >= end) { if (!(res->flags & IORESOURCE_BUSY)) { p = &res->child; continue; } if (res->start != start || res->end != end) break; *p = res->sibling; write_unlock(&resource_lock); + memset(res, 0, sizeof(*res)); kfree(res); return; } p = &res->sibling; } write_unlock(&resource_lock); printk(KERN_WARNING "Trying to free nonexistent resource <%08lx-%08lx>\n", start, end); }