Jeff Garzik schrieb: > > Your patch is attached base64-encoded, which makes it impossible to > comment on it inline. > > Jeff > > Sorry for that. I send this via webclient.
Here is another attempt. dm9000_release_board calls release_resource with the platform resource instead of the requested resource: db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); db->addr_req = request_mem_region(db->addr_res->start, i, pdev->name); dm9000_release_board: if (db->addr_res != NULL) { release_resource(db->addr_res); kfree(db->addr_req); With this behavior the kernel will crash on the second removal. The attached patch fix this problem. Signed-off-by: Dirk Opfer <[EMAIL PROTECTED]> Dirk
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index 3d76fa1..a860ebb 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -377,8 +377,8 @@ dm9000_release_board(struct platform_dev kfree(db->data_req); } - if (db->addr_res != NULL) { - release_resource(db->addr_res); + if (db->addr_req != NULL) { + release_resource(db->addr_req); kfree(db->addr_req); } }