static void
 dm9000_release_board(struct platform_device *pdev, struct board_info *db)
 {
-       if (db->data_res == NULL) {
-               if (db->addr_res != NULL)
-                       release_mem_region((unsigned long)db->io_addr, 4);
-               return;
-       }
-
        /* unmap our resources */
 
        iounmap(db->io_addr);
 
        /* release the resources */
 
-       if (db->data_req != NULL) {
-               release_resource(db->data_req);
-               kfree(db->data_req);
-       }
+       release_resource(db->data_req);
+       kfree(db->data_req);
 
-       if (db->addr_req != NULL) {
-               release_resource(db->addr_req);
-               kfree(db->addr_req);
-       }
+       release_resource(db->addr_req);
+       kfree(db->addr_req);
 }
 
 static unsigned char dm9000_type_to_char(enum dm9000_type type)
 
        INIT_DELAYED_WORK(&db->phy_poll, dm9000_poll_work);
 
-
-       if (pdev->num_resources < 3) {
-               ret = -ENODEV;
-               goto out;
-       }
-
        db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
        db->irq_res  = platform_get_resource(pdev, IORESOURCE_IRQ, 0);