diff --git a/lib/bdev/virtio/rte_virtio/virtio_user.c b/lib/bdev/virtio/rte_virtio/virtio_user.c index b3786881ea..6165d84001 100644 --- a/lib/bdev/virtio/rte_virtio/virtio_user.c +++ b/lib/bdev/virtio/rte_virtio/virtio_user.c @@ -49,6 +49,8 @@ #include "virtio_pci.h" #include "virtio_user/virtio_user_dev.h" +#include "spdk/string.h" + #define virtio_dev_get_user_dev(dev) \ ((struct virtio_user_dev *)((uintptr_t)(dev) - offsetof(struct virtio_user_dev, vdev))) @@ -92,10 +94,12 @@ static uint64_t virtio_user_get_features(struct virtio_dev *vdev) { struct virtio_user_dev *dev = virtio_dev_get_user_dev(vdev); + char err_str[64]; uint64_t features; if (dev->ops->send_request(dev, VHOST_USER_GET_FEATURES, &features) < 0) { - SPDK_ERRLOG("get_features failed: %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("get_features failed: %s\n", err_str); return 0; } @@ -163,6 +167,7 @@ virtio_user_setup_queue(struct virtio_dev *vdev, struct virtqueue *vq) struct virtio_user_dev *dev = virtio_dev_get_user_dev(vdev); uint16_t queue_idx = vq->vq_queue_index; uint64_t desc_addr, avail_addr, used_addr; + char err_str[64]; int callfd; int kickfd; @@ -177,13 +182,15 @@ virtio_user_setup_queue(struct virtio_dev *vdev, struct virtqueue *vq) */ callfd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); if (callfd < 0) { - SPDK_ERRLOG("callfd error, %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("callfd error, %s\n", err_str); return -1; } kickfd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); if (kickfd < 0) { - SPDK_ERRLOG("kickfd error, %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("kickfd error, %s\n", err_str); close(callfd); return -1; } @@ -230,9 +237,11 @@ virtio_user_notify_queue(struct virtio_dev *vdev, struct virtqueue *vq) { uint64_t buf = 1; struct virtio_user_dev *dev = virtio_dev_get_user_dev(vdev); + char err_str[64]; if (write(dev->kickfds[vq->vq_queue_index], &buf, sizeof(buf)) < 0) - SPDK_ERRLOG("failed to kick backend: %s.\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("failed to kick backend: %s.\n", err_str); } static void diff --git a/lib/bdev/virtio/rte_virtio/virtio_user/vhost_user.c b/lib/bdev/virtio/rte_virtio/virtio_user/vhost_user.c index c33bde129a..bde542903a 100644 --- a/lib/bdev/virtio/rte_virtio/virtio_user/vhost_user.c +++ b/lib/bdev/virtio/rte_virtio/virtio_user/vhost_user.c @@ -43,6 +43,8 @@ #include "vhost.h" #include "virtio_user_dev.h" +#include "spdk/string.h" + /* The version of the protocol we support */ #define VHOST_USER_VERSION 0x1 @@ -282,6 +284,7 @@ vhost_user_sock(struct virtio_user_dev *dev, { struct vhost_user_msg msg; struct vhost_vring_file *file = 0; + char err_str[64]; int need_reply = 0; int fds[VHOST_MEMORY_MAX_NREGIONS]; int fd_num = 0; @@ -362,8 +365,9 @@ vhost_user_sock(struct virtio_user_dev *dev, len = VHOST_USER_HDR_SIZE + msg.size; if (vhost_user_write(vhostfd, &msg, len, fds, fd_num) < 0) { + spdk_strerror_r(errno, err_str, sizeof(err_str)); SPDK_ERRLOG("%s failed: %s\n", - vhost_msg_strings[req], strerror(errno)); + vhost_msg_strings[req], err_str); return -1; } @@ -373,8 +377,8 @@ vhost_user_sock(struct virtio_user_dev *dev, if (need_reply) { if (vhost_user_read(vhostfd, &msg) < 0) { - SPDK_WARNLOG("Received msg failed: %s\n", - strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_WARNLOG("Received msg failed: %s\n", err_str); return -1; } @@ -423,16 +427,19 @@ vhost_user_setup(struct virtio_user_dev *dev) int flag; struct sockaddr_un un; ssize_t rc; + char err_str[64]; fd = socket(AF_UNIX, SOCK_STREAM, 0); if (fd < 0) { - SPDK_ERRLOG("socket() error, %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("socket() error, %s\n", err_str); return -1; } flag = fcntl(fd, F_GETFD); if (fcntl(fd, F_SETFD, flag | FD_CLOEXEC) < 0) - SPDK_ERRLOG("fcntl failed, %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("fcntl failed, %s\n", err_str); memset(&un, 0, sizeof(un)); un.sun_family = AF_UNIX; @@ -443,7 +450,8 @@ vhost_user_setup(struct virtio_user_dev *dev) return -1; } if (connect(fd, (struct sockaddr *)&un, sizeof(un)) < 0) { - SPDK_ERRLOG("connect error, %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("connect error, %s\n", err_str); close(fd); return -1; } 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 cd6d4eadbe..2b47f75564 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 @@ -47,6 +47,8 @@ #include "virtio_user_dev.h" #include "../virtio_dev.h" +#include "spdk/string.h" + static int virtio_user_create_queue(struct virtio_user_dev *dev, uint32_t queue_sel) { @@ -179,6 +181,7 @@ virtio_user_dev_init(char *path, uint16_t requested_queues, uint32_t queue_size) struct virtio_dev *vdev; struct virtio_user_dev *dev; uint64_t max_queues; + char err_str[64]; dev = calloc(1, sizeof(*dev)); if (dev == NULL) { @@ -202,7 +205,8 @@ virtio_user_dev_init(char *path, uint16_t requested_queues, uint32_t queue_size) } if (dev->ops->send_request(dev, VHOST_USER_GET_QUEUE_NUM, &max_queues) < 0) { - SPDK_ERRLOG("get_queue_num fails: %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("get_queue_num fails: %s\n", err_str); goto err; } @@ -215,7 +219,8 @@ virtio_user_dev_init(char *path, uint16_t requested_queues, uint32_t queue_size) vdev->max_queues = requested_queues; if (dev->ops->send_request(dev, VHOST_USER_SET_OWNER, NULL) < 0) { - SPDK_ERRLOG("set_owner fails: %s\n", strerror(errno)); + spdk_strerror_r(errno, err_str, sizeof(err_str)); + SPDK_ERRLOG("set_owner fails: %s\n", err_str); goto err; }