static void roce_gid_cache_client_setup_one(struct ib_device *ib_dev)
{
	if (!roce_gid_cache_setup_one(ib_dev)) {
		roce_gid_cache_set_active_state(ib_dev, 1);
		if (roce_rescan_device(ib_dev)) {
			roce_gid_cache_set_active_state(ib_dev, 0);
			roce_gid_cache_cleanup_one(ib_dev);
		}
	}
}
Ejemplo n.º 2
0
static int gid_table_setup_one(struct ib_device *ib_dev)
{
	int err;

	err = _gid_table_setup_one(ib_dev);

	if (err)
		return err;

	err = roce_rescan_device(ib_dev);

	if (err) {
		gid_table_cleanup_one(ib_dev);
		gid_table_release_one(ib_dev);
	}

	return err;
}