Commit 004913cf authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Daniel Verkamp
Browse files

rte_virtio: cleaned up virtio_user_dev_init



Removes duplicated code.

Change-Id: I3a86add4fd635441ad56f4d21d75bd8bb338d5f9
Signed-off-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/376623


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
parent bb252345
Loading
Loading
Loading
Loading
+10 −15
Original line number Diff line number Diff line
@@ -253,43 +253,38 @@ virtio_user_dev_init(char *path, int queues, int queue_size)

	if (virtio_user_dev_setup(dev) < 0) {
		PMD_INIT_LOG(ERR, "backend set up fails");
		free(hw);
		free(dev);
		return NULL;
		goto err;
	}

	if (dev->ops->send_request(dev, VHOST_USER_GET_QUEUE_NUM, &max_queues) < 0) {
		PMD_INIT_LOG(ERR, "get_queue_num fails: %s", strerror(errno));
		free(hw);
		free(dev);
		return NULL;
		goto err;
	}

	if (dev->max_queues > max_queues) {
		PMD_INIT_LOG(ERR, "%d queues requested but only %lu supported", dev->max_queues, max_queues);
		free(hw);
		free(dev);
		return NULL;
		goto err;
	}

	if (dev->ops->send_request(dev, VHOST_USER_SET_OWNER, NULL) < 0) {
		PMD_INIT_LOG(ERR, "set_owner fails: %s", strerror(errno));
		free(hw);
		free(dev);
		return NULL;
		goto err;
	}

	if (dev->ops->send_request(dev, VHOST_USER_GET_FEATURES,
			    &dev->device_features) < 0) {
		PMD_INIT_LOG(ERR, "get_features failed: %s", strerror(errno));
		free(hw);
		free(dev);
		return NULL;
		goto err;
	}

	dev->device_features &= VIRTIO_USER_SUPPORTED_FEATURES;

	return hw;

err:
	free(hw);
	free(dev);
	return NULL;
}

void