diff options
author | Evgeniy Dushistov <dushistov@mail.ru> | 2007-11-04 23:22:29 +0300 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-11-05 17:57:30 -0500 |
commit | d2ea732e9ecb68841206f2761ae91360da87cfac (patch) | |
tree | 3071f40a6c8046f7c37fb646315e0d7884d9d572 /drivers/net/82596.c | |
parent | cacd40e07c5ad7068221b3910098f1d364e74e45 (diff) | |
download | lwn-d2ea732e9ecb68841206f2761ae91360da87cfac.tar.gz lwn-d2ea732e9ecb68841206f2761ae91360da87cfac.zip |
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>
Diffstat (limited to 'drivers/net/82596.c')
-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) goto out; } + dev->base_addr = ioaddr; + for (i = 0; i < 8; i++) { eth_addr[i] = inb(ioaddr + 8 + i); checksum += eth_addr[i]; @@ -1209,7 +1211,6 @@ struct net_device * __init i82596_probe(int unit) goto out1; } - dev->base_addr = ioaddr; dev->irq = 10; } #endif |