/* check if the resource is already in use, skip if the
         * device is active because it itself may be in use */
        if (!dev->active) {
-               if (__check_region(&ioport_resource, *port, length(port, end)))
+               if (!request_region(*port, length(port, end), "pnp"))
                        return 0;
+               release_region(*port, length(port, end));
        }
 
        /* check if the resource is reserved */
        /* check if the resource is already in use, skip if the
         * device is active because it itself may be in use */
        if (!dev->active) {
-               if (check_mem_region(*addr, length(addr, end)))
+               if (!request_mem_region(*addr, length(addr, end), "pnp"))
                        return 0;
+               release_mem_region(*addr, length(addr, end));
        }
 
        /* check if the resource is reserved */