snprintf(aup->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x",
                pdev->name, aup->mac_id);
        aup->mii_bus->irq = kmalloc(sizeof(int)*PHY_MAX_ADDR, GFP_KERNEL);
-       if (aup->mii_bus->irq == NULL)
+       if (aup->mii_bus->irq == NULL) {
+               err = -ENOMEM;
                goto err_out;
+       }
 
        for (i = 0; i < PHY_MAX_ADDR; ++i)
                aup->mii_bus->irq[i] = PHY_POLL;
                goto err_mdiobus_reg;
        }
 
-       if (au1000_mii_probe(dev) != 0)
+       err = au1000_mii_probe(dev);
+       if (err != 0)
                goto err_out;
 
        pDBfree = NULL;
        }
        aup->pDBfree = pDBfree;
 
+       err = -ENODEV;
        for (i = 0; i < NUM_RX_DMA; i++) {
                pDB = au1000_GetFreeDB(aup);
                if (!pDB)
                aup->rx_dma_ring[i]->buff_stat = (unsigned)pDB->dma_addr;
                aup->rx_db_inuse[i] = pDB;
        }
+
+       err = -ENODEV;
        for (i = 0; i < NUM_TX_DMA; i++) {
                pDB = au1000_GetFreeDB(aup);
                if (!pDB)