diff options
author | Evgeniy Dushistov <dushistov@mail.ru> | 2007-11-04 15:22:29 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-11-05 17:57:30 -0500 |
commit | d2ea732e9ecb68841206f2761ae91360da87cfac (patch) | |
tree | 3071f40a6c8046f7c37fb646315e0d7884d9d572 | |
parent | cacd40e07c5ad7068221b3910098f1d364e74e45 (diff) |
82596: free nonexistent resource fix
During booting of last vanilla kernel I got:
Trying to free nonexistent resource...
This because of if "ENABLE_APRICOT" is on we do:
request_region(ioaddr,...)
if (checksum test failed)
goto out1;
dev->base_addr = ioaddr;//<-here mistake
out1:
release_region(dev->base_addr,...)
This change fixes this bug for me.
Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/82596.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/82596.c b/drivers/net/82596.c index bb30d5be7824..2797da7eeee6 100644 --- a/drivers/net/82596.c +++ b/drivers/net/82596.c | |||
@@ -1192,6 +1192,8 @@ struct net_device * __init i82596_probe(int unit) | |||
1192 | goto out; | 1192 | goto out; |
1193 | } | 1193 | } |
1194 | 1194 | ||
1195 | dev->base_addr = ioaddr; | ||
1196 | |||
1195 | for (i = 0; i < 8; i++) { | 1197 | for (i = 0; i < 8; i++) { |
1196 | eth_addr[i] = inb(ioaddr + 8 + i); | 1198 | eth_addr[i] = inb(ioaddr + 8 + i); |
1197 | checksum += eth_addr[i]; | 1199 | checksum += eth_addr[i]; |
@@ -1209,7 +1211,6 @@ struct net_device * __init i82596_probe(int unit) | |||
1209 | goto out1; | 1211 | goto out1; |
1210 | } | 1212 | } |
1211 | 1213 | ||
1212 | dev->base_addr = ioaddr; | ||
1213 | dev->irq = 10; | 1214 | dev->irq = 10; |
1214 | } | 1215 | } |
1215 | #endif | 1216 | #endif |