Commit 51985487 authored by Dirk Opfer's avatar Dirk Opfer Committed by Jeff Garzik

[PATCH] Fix dm9000 release_resource

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: default avatarDirk Opfer <Dirk@Opfer-Online.de>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 38f5745c
...@@ -377,8 +377,8 @@ dm9000_release_board(struct platform_device *pdev, struct board_info *db) ...@@ -377,8 +377,8 @@ dm9000_release_board(struct platform_device *pdev, struct board_info *db)
kfree(db->data_req); kfree(db->data_req);
} }
if (db->addr_res != NULL) { if (db->addr_req != NULL) {
release_resource(db->addr_res); release_resource(db->addr_req);
kfree(db->addr_req); kfree(db->addr_req);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment