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);
        }
 }

Reply via email to