int __init eisa_root_register()

in eisa-bus.c [409:434]


int __init eisa_root_register(struct eisa_root_device *root)
{
	int err;

	/* Use our own resources to check if this bus base address has
	 * been already registered. This prevents the virtual root
	 * device from registering after the real one has, for
	 * example... */

	root->eisa_root_res.name  = eisa_root_res.name;
	root->eisa_root_res.start = root->res->start;
	root->eisa_root_res.end   = root->res->end;
	root->eisa_root_res.flags = IORESOURCE_BUSY;

	err = request_resource(&eisa_root_res, &root->eisa_root_res);
	if (err)
		return err;

	root->bus_nr = eisa_bus_count++;

	err = eisa_probe(root);
	if (err)
		release_resource(&root->eisa_root_res);

	return err;
}