From 004913cf0425f10c92e1f684b0baf2084199341c Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Thu, 31 Aug 2017 17:10:05 +0200 Subject: [PATCH] rte_virtio: cleaned up virtio_user_dev_init Removes duplicated code. Change-Id: I3a86add4fd635441ad56f4d21d75bd8bb338d5f9 Signed-off-by: Dariusz Stojaczyk Reviewed-on: https://review.gerrithub.io/376623 Reviewed-by: Jim Harris Reviewed-by: Daniel Verkamp Reviewed-by: Tomasz Zawadzki Tested-by: SPDK Automated Test System --- .../rte_virtio/virtio_user/virtio_user_dev.c | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/lib/bdev/virtio/rte_virtio/virtio_user/virtio_user_dev.c b/lib/bdev/virtio/rte_virtio/virtio_user/virtio_user_dev.c index c6d904856..547861fd5 100644 --- a/lib/bdev/virtio/rte_virtio/virtio_user/virtio_user_dev.c +++ b/lib/bdev/virtio/rte_virtio/virtio_user/virtio_user_dev.c @@ -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