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>
                        goto out;
                }
 
+               dev->base_addr = ioaddr;
+
                for (i = 0; i < 8; i++) {
                        eth_addr[i] = inb(ioaddr + 8 + i);
                        checksum += eth_addr[i];
                        goto out1;
                }
 
-               dev->base_addr = ioaddr;
                dev->irq = 10;
        }
 #endif