82596: free nonexistent resource fix
authorEvgeniy Dushistov <dushistov@mail.ru>
Sun, 4 Nov 2007 20:22:29 +0000 (23:22 +0300)
committerJeff Garzik <jeff@garzik.org>
Mon, 5 Nov 2007 22:57:30 +0000 (17:57 -0500)
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>
drivers/net/82596.c

index bb30d5b..2797da7 100644 (file)
@@ -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